Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
sss宋
unidocs-zh
提交
bd2b97de
unidocs-zh
项目概览
sss宋
/
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,发现更多精彩内容 >>
提交
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录