5. ASP.NET Core 中有哪些异常处理的方案?

1).继承 Controller,重写 OnActionExecuted
默认都会继承一个 Controller 类,重写 OnActionExecuted,添加上异常处理即
可 。 一 般 情 况 下 我 们 会 新 建 一 个 BaseController, 让 所 有 Controller 继 承
BaseController。代码如下

2).使用 ActionFilterAttribute。


ActionFilterAttribute 是一个特性,本身实现了 IActionFilter 及 IResultFilter , 所以不管是 action 里抛错,还是 view 里抛错,理论上都可以捕获。我们新建一
个 ExceptionActionFilterAttribute, 重写 OnActionExecuted 及
OnResultExecuted,添加上异常处理,完整代码如下:

使用方式有两种,
在 controller 里打上 [TypeFilter(typeof(ExceptionActionFilter)] 标签;
在 Startup 里以 filter 方式全局注入。

3).使用 IExceptionFilter

我们知道, Asp.Net Core 提供了 5 类 filter, IExceptionFilter 是其中之一,顾名
思义,这就是用来处理异常的。Asp.net Core 中 ExceptionFilterAttribute 已经
实现了 IExceptionFilter,所以我们只需继承 ExceptionFilterAttribute,重写其
中 方 法 即 可 。 同 样 新 建 CustomExceptionFilterAttribute 继 承
ExceptionFilterAttribute,重写 OnException ,添加异常处理,完整代码如下:

4).使用 ExceptionHandler.

5).自定义 Middleare 处理
通过 middleware 全局处理。

详解

posted @   似梦亦非梦  阅读(7)  评论(0编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示