## 简介
当程序出现异常之后,框架需要记录,同时反馈前端对应的信息
它通过`全局错误中间件`实现
错误后,将统一返回以下模型格式:
``` cs
public class RemoteServiceErrorInfo
{
public string? Code { get; set; }
///
/// message.
///
public string? Message { get; set; }
///
/// details.
///
public string? Details { get; set; }
///
/// data.
///
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内部将自动抓取,并返回给前端