异常处理

Posted cloudsu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了异常处理相关的知识,希望对你有一定的参考价值。

异常抽象:有异常码 IHasErrorCode:异常内容,IHasErrorDetails:对用户友好的IUserFriendlyException:IBusinessException(也有用户自定义Code、Details),IHasLogLevel级别:默认是Warning

对Exception的包装,基类需要的是SerializationInfo、StreamingContext以及message、innerException

UserFriendlyException是展示用户的,其它还有AbpAuthorizationException(403、401),AbpValidationException(400),EntityNotFoundException(404)、IBusinessException(401),AggregateException

ApplicationBuilder处理AbpExceptionHandlingMiddleware,它在IApplicationBuilder.Properties设置了_AbpExceptionHandlingMiddleware_Added,只增加一次,全局性的

对于所有都是适用的,并不是每一次访问都执行。

它对HttpContext.Item["_AbpActionInfo"]是Object的话,对对象序列化进行都是包装,它要转换异常内容,、序列化操作

异常码查找:可根据自定义的IHasErrorCode,映射成HttpStatusCode,若没有根据相应的Exception默认的HttpStatusCode,否则505错误

将异常转换成RemoteServiceErrorResponse,责任是DefaultExceptionToErrorInfoConverter,ITransientDependency类型

默认是不把所有详细异常给客户端,涉及RemoteServiceErrorInfo本地化,各种类型的Message、Code、Details赋值

详细异常是将包括UserFriendlyException、AbpValidationException、StackTrace、Inner exception逐行抛出

应用类,要经常MVC的,在AbpExceptionFilter出现,同样处理抛出异常

以上是关于异常处理的主要内容,如果未能解决你的问题,请参考以下文章

java异常处理详解!!

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

Kotlin 协程Flow 流异常处理 ( 收集元素异常处理 | 使用 try...catch 代码块捕获处理异常 | 发射元素时异常处理 | 使用 Flow#catch 函数捕获处理异常 )

异常处理,约束,MD5加密,日志处理

PHP异常处理

Java的异常处理语法