Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_16800119
unidocs-zh
提交
d857cb88
unidocs-zh
项目概览
qq_16800119
/
unidocs-zh
与 Fork 源项目一致
Fork自
DCloud / unidocs-zh
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d857cb88
编写于
11月 12, 2022
作者:
W
wanganxp
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
更新err规范
上级
a8ebba32
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
24 addition
and
5 deletion
+24
-5
docs/tutorial/err-spec.md
docs/tutorial/err-spec.md
+24
-5
未找到文件。
docs/tutorial/err-spec.md
浏览文件 @
d857cb88
## 错误信息规范
# uni错误规范
## 背景
小程序平台的错误信息,大多返回的格式是errCode和errMsg。但不同的小程序平台,返回的errCode有可能不一样。
在实际开发中,uni-app引擎、三方插件、开发者自己的业务代码,都会返回错误,但errCode也可能彼此冲突。
在统一的错误拦截和uni统计中,混乱的errCode会造成很多问题。
很多错误是由更底层的错误引发的,但只暴露最外层错误难以入手排查,需要暴露更底层的错误。
为了进一步规范错误信息格式,uni-app定义了更完善的错误规范:
1.
补充了errSubject,用于区隔不同平台或不同模块errCode相同的情况
2.
补充了cause,用于反馈错误的上一层来源。比如在app平台,uni.login API返回错误时,可能是底层的三方社交登录sdk报了错,此时会把三方sdk的错误追加到cause里
从2022-11-11起,DCloud新增的所有API将使用这套uni错误规范。同时我们推荐所有的插件作者也使用这套规范,在errSubject中声明自己的插件id。
## 定义
所有异步API,都应通过callback回调返回错误,在回调函数参数中包含错误信息,回调函数参数为UniError类型
所有异步API,都应通过callback回调返回错误,在回调函数参数中包含错误信息,回调函数参数为UniError类型
完整错误类型定义如下:
完整错误类型定义如下:
...
@@ -31,7 +50,7 @@ function CallBack(err:UniError){
...
@@ -31,7 +50,7 @@ function CallBack(err:UniError){
}
}
```
```
##
#
SourceError
## SourceError
用于保存引起错误的源错误,如app端三方SDK的错误信息,包括以下属性:
用于保存引起错误的源错误,如app端三方SDK的错误信息,包括以下属性:
-
subject
-
subject
源错误(如app端三方SDK)模块名称,如uni-AD中的穿山甲广告SDK的模块名称为"csj"
源错误(如app端三方SDK)模块名称,如uni-AD中的穿山甲广告SDK的模块名称为"csj"
...
@@ -45,13 +64,13 @@ function CallBack(err:UniError){
...
@@ -45,13 +64,13 @@ function CallBack(err:UniError){
**注意**
**注意**
源错误可以根据业务情况扩展其它属性,如uni-AD中,可以添加slotId来表示聚合的三方广告位标识
源错误可以根据业务情况扩展其它属性,如uni-AD中,可以添加slotId来表示聚合的三方广告位标识
##
#
AggregateError
## AggregateError
用于保存多个源错误,如app端某个错误可能是由多个三方SDK的错误引起,可将多个源错误组成AggregateError对象。
用于保存多个源错误,如app端某个错误可能是由多个三方SDK的错误引起,可将多个源错误组成AggregateError对象。
包括以下属性:
包括以下属性:
-
errors
-
errors
数组,可包含SourceError或AggregateError对象
数组,可包含SourceError或AggregateError对象
##
#
UniError
## UniError
Uni统一错误信息,用于统一各平台(端)错误信息
Uni统一错误信息,用于统一各平台(端)错误信息
-
errSubject
-
errSubject
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",详情参考
[
主题(模块)名称
](
#主题(模块)名称
)
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",详情参考
[
主题(模块)名称
](
#主题(模块)名称
)
...
@@ -74,7 +93,7 @@ function CallBack(err:UniError){
...
@@ -74,7 +93,7 @@ function CallBack(err:UniError){
```
```
##
模块(
主题)名称
##
errSubject(模块/
主题)名称
errSubject属性值表示返回错误的调用模块名称。
errSubject属性值表示返回错误的调用模块名称。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录