c# - 发生模型绑定错误时,ASP.NET WebAPI 全局错误处理过滤器不起作用
问题描述
我在 .NET Framework 中编写了 Web API。我做了一个全局错误过滤器。
public class UnhandledExceptionFilter : ExceptionFilterAttribute
{
public override void OnException(HttpActionExecutedContext context)
{
//log somewhere
//Make user friendly error message
}
}
我将它添加到全局过滤器中
config.Filters.Add(new UnhandledExceptionFilter());
当控制器中发生错误时,这可以正常工作。但是当默认模型绑定发生错误时它不起作用。假设我有一个动作,它得到一个DateTime
参数。
public class MyController: ApiController
{
public override void CheckBirthdate(DateTime birthdate)
{
throw new Exception("Test");
}
}
如果我这样称呼MyController/CheckBirthdate?birthdate=03/05/2021
我的全局错误处理工作。但是我这样称呼MyController/CheckBirthdate?birthdate=test
我的全局错误处理不起作用。我得到这样的错误
无法将字符串转换为日期时间:测试。路径“生日”
为什么全局错误处理过滤器无法捕获它?我该如何解决?
解决方案
推荐阅读
- php - php中具有两个排序条件的多维json数组
- rest - 找不到本地主机 Spring Boot 服务
- windows - Delphi 10.3 社区 PaintBox 重绘功能的问题
- python - 尝试求解 x 值为 0 的函数时使用 sympy subs 命令时遇到问题
- python - 是什么导致 pytesseract 根据是否使用 opencv 或枕头来读取双行图像的顶部或底部文本行?
- google-forms - 根据之前回答的问题预先填写信息
- python-3.x - 如何在 HERE 路由匹配 API 上使用 python 获取 POST 请求?
- reactjs - Hooks Context 给我循环渲染的错误,为什么?
- javascript - 为什么我在下面的 javaScript 函数中没有收到类型错误?
- html - 行高小于 1 的标题会拦截元素边界外的点击