Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
bd2b97de
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3172
Star
105
Fork
804
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
93
列表
看板
标记
里程碑
合并请求
67
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
93
Issue
93
列表
看板
标记
里程碑
合并请求
67
合并请求
67
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
bd2b97de
编写于
8月 22, 2023
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Update err-spec.md
上级
c597cf48
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
83 addition
and
3 deletion
+83
-3
docs/tutorial/err-spec.md
docs/tutorial/err-spec.md
+83
-3
未找到文件。
docs/tutorial/err-spec.md
浏览文件 @
bd2b97de
...
...
@@ -24,9 +24,9 @@
```
ts
//源错误信息
interface
SourceError
{
message
:
string
,
subject
?:
string
,
code
?:
number
,
message
?:
string
,
cause
?:
SourceError
|
UniAggregateError
}
...
...
@@ -73,7 +73,7 @@ function CallBack(err:UniError){
## UniError
Uni统一错误信息,用于统一各平台(端)错误信息
-
errSubject
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",
详情参考
[
主题(模块)名称
](
#主题(模块)名称
)
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",
参考
[
errSubject(模块/主题)名称
](
#errSubject
)
-
errCode
统一错误码,数字类型,通常0表示成功,其它为错误码
对于已经实现的API,继续保留现有errCode规范(保留向下兼容)
...
...
@@ -93,7 +93,7 @@ function CallBack(err:UniError){
```
## errSubject(模块/主题)名称
## errSubject(模块/主题)名称
@errSubject
errSubject属性值表示返回错误的调用模块名称。
...
...
@@ -117,4 +117,84 @@ errSubject属性值表示返回错误的调用模块名称。
-
uni插件中返回错误时建议将“插件id”作为errSubject属性值,如果插件的API较多时可将每个API单独定义errSubject,建议使用errSubject属性值格式为“插件id-API名称”。
## uts插件或uvue页面中使用UniError
在uni-app、uni-app x中的错误信息建议统一使用UniError对象,以便在发生错误时统一捕获处理,特别是以下情况:
-
在uts插件中封装API给uni-app使用时,返回的错误信息要求使用UniError对象。
-
在uni-app x项目的uvue页面中,抛出错误要求使用UniError对象。
在App端,UniError和SourceError都是从uts的
[
Error
](
https://uniapp.dcloud.net.cn/uts/buildin-object-api/error.html
)
继承。
### 构造UniError对象
UniError对象必须通过 new 操作符构造
**语法**
```
ts
new
UniError
()
new
UniError
(
errSubject
:
string
,
errCode
:
number
,
errMsg
:
string
)
```
**参数**
-
errSubject
统一错误主题(模块)名称,字符串类型,存在多级模块时使用"::"分割,即"模块名称::二级模块名称",参考
[
errSubject(模块/主题)名称
](
#errSubject
)
-
errCode
统一错误码,数字类型,通常0表示成功,其它为错误码
-
errMsg
统一错误描述信息,字符串类型,应准确描述引起的错误原因
**示例**
```
//创建一个UniError
let error = new UniError("uni-apidName", 60000, "Custom uni error");
//设置data数据(可选)
error.data = {
"dataName": "custom data value"
};
```
### 构造SourceError对象
当错误信息是有三方SDK或其它模块引起时,可以将三方SDK或其它模块的错误信息封装在SourceError中作为UniError的源错误
**语法**
```
ts
new
SourceError
()
new
SourceError
(
message
:
string
)
```
**参数**
-
message
源错误描述信息,字符串类型
**示例**
```
//创建一个SourceError
let sourceError = new SourceError("Third SDK error message");
//创建一个UniError
let error = new UniError("uni-apidName", 60000, "Custom uni error");
//设置源错误
error.cause = sourceError;
```
### 构造UniAggregateError对象
当错误是由多个SourceError源错误引起时,可以将多个源错误放到一个UniAggregateError对象中
**语法**
```
ts
new
UniAggregateError
(
errors
:
Array
<
SourceError
>
)
```
**参数**
-
errors
源错误数组,Array
<SourceError>
类型
**示例**
```
ts
//创建UniAggregateError
let
aggregateError
=
new
UniAggregateError
([
new
SourceError
(
"
First 3rd SDK error message
"
),
new
SourceError
(
"
Second 3rd SDK error message
"
)]);
//创建一个UniError
let
error
=
new
UniError
(
"
uni-apidName
"
,
60000
,
"
Custom uni error
"
);
//设置源错误
error
.
cause
=
aggregateError
;
```
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录