Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
d857cb88
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3593
Star
108
Fork
920
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
108
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
108
合并请求
108
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
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类型
完整错误类型定义如下:
...
...
@@ -31,7 +50,7 @@ function CallBack(err:UniError){
}
```
##
#
SourceError
## SourceError
用于保存引起错误的源错误,如app端三方SDK的错误信息,包括以下属性:
-
subject
源错误(如app端三方SDK)模块名称,如uni-AD中的穿山甲广告SDK的模块名称为"csj"
...
...
@@ -45,13 +64,13 @@ function CallBack(err:UniError){
**注意**
源错误可以根据业务情况扩展其它属性,如uni-AD中,可以添加slotId来表示聚合的三方广告位标识
##
#
AggregateError
## AggregateError
用于保存多个源错误,如app端某个错误可能是由多个三方SDK的错误引起,可将多个源错误组成AggregateError对象。
包括以下属性:
-
errors
数组,可包含SourceError或AggregateError对象
##
#
UniError
## UniError
Uni统一错误信息,用于统一各平台(端)错误信息
-
errSubject
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",详情参考
[
主题(模块)名称
](
#主题(模块)名称
)
...
...
@@ -74,7 +93,7 @@ function CallBack(err:UniError){
```
##
模块(
主题)名称
##
errSubject(模块/
主题)名称
errSubject属性值表示返回错误的调用模块名称。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录