48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
## 简介
|
||
当程序出现异常之后,框架需要记录,同时反馈前端对应的信息
|
||
它通过`全局错误中间件`实现
|
||
|
||
错误后,将统一返回以下模型格式:
|
||
``` cs
|
||
public class RemoteServiceErrorInfo
|
||
{
|
||
|
||
public string? Code { get; set; }
|
||
|
||
/// <summary>
|
||
/// message.
|
||
/// </summary>
|
||
public string? Message { get; set; }
|
||
|
||
/// <summary>
|
||
/// details.
|
||
/// </summary>
|
||
public string? Details { get; set; }
|
||
|
||
/// <summary>
|
||
/// data.
|
||
/// </summary>
|
||
public object? Data { get; set; }
|
||
}
|
||
```
|
||
|
||
框架内部错误分为三大类:
|
||
#### 系统内部错误
|
||
> httpCode:500
|
||
系统不能处理、或未发现的错误,需要即使进行修复
|
||
#### 业务友好错误
|
||
> httpCode:403
|
||
跟业务相关,业务请求不合理,例如:登录失败、数据重复
|
||
#### 授权错误
|
||
> httpCode:401
|
||
跟权限相关,代表当前用户权限不足
|
||
|
||
## 使用
|
||
你可以在程序任何地方进行抛出错误
|
||
``` cs
|
||
throw new Exception("系统错误");//状态码500
|
||
throw new UserFriendlyException("业务错误");//状态码403
|
||
throw new NotImplementedException("未实现");//状态码501
|
||
throw new UserFriendlyException("花里胡哨错误","401");//状态码401
|
||
```
|
||
Abp内部将自动抓取,并返回给前端 |