(更新时间)2021年5月30日 商城高并发秒杀系统(.NET Core版) 12-通用异常结果集的封装
【摘要】
一:通用异常结果集的封装
/// <summary>
/// 自定义业务异常处理,转换成为json格式
/// </summary>
public class BizExcept...
一:通用异常结果集的封装
/// <summary>
/// 自定义业务异常处理,转换成为json格式
/// </summary>
public class BizExceptionHandler : IExceptionFilter
{
public void OnException(ExceptionContext context)
{
// 1、判断异常是否BizException
if (context.Exception is BizException bizException)
{
// 1.1 将异常转换成为json结果
dynamic exceptionResult = new ExpandoObject();
exceptionResult.ErrorNo = bizException.ErrorNo;
exceptionResult.ErrorInfo = bizException.ErrorInfo;
if (bizException.Infos != null)
{
exceptionResult.infos = bizException.Infos;
}
context.Result = new JsonResult(exceptionResult);
}
else
{
// 1.2 处理其他类型异常Exception
dynamic exceptionResult = new ExpandoObject();
exceptionResult.ErrorNo = -1;
exceptionResult.ErrorInfo = context.Exception.Message;
// 1.3 包装异常信息进行异常返回
context.Result = new JsonResult(exceptionResult);
}
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
/// <summary>
/// 通过业务异常类
/// </summary>
public class BizException : Exception
{
public string ErrorNo { get; } // 业务异常编号
public string ErrorInfo { get; }// 业务异常信息
public IDictionary<string, object> Infos { set; get; } // 业务异常详细信息
public BizException(string errorNo, string errorInfo) : base(errorInfo)
{
ErrorNo = errorNo;
ErrorInfo = errorInfo;
}
public BizException(string errorNo, string errorInfo, Exception e) : base(errorInfo, e)
{
ErrorNo = errorNo;
ErrorInfo = errorInfo;
}
public BizException(string errorInfo) : base(errorInfo)
{
ErrorNo = "-1";
ErrorInfo = errorInfo;
}
public BizException(string errorInfo, Exception e) : base(errorInfo, e)
{
ErrorNo = "-1";
ErrorInfo = errorInfo;
}
public BizException(Exception e)
{
ErrorNo = "-1";
ErrorInfo = e.Message;
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
public class CommonException
{
public string ErrorNo; // 错误编号 0001 0002 0033 0004
public string ErrorInfo;// 规范错误信息
}
- 1
- 2
- 3
- 4
- 5
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/117406441
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)