【发布时间】:2019-08-07 15:54:27
【问题描述】:
我正试图找出我哪里出错了。我想捕捉到我的 api 的 404 错误。我有中间件设置,但是当我尝试点击不存在的页面时,该异常永远不会发生。
public async Task Invoke(HttpContext context)
{
try
{
await _requestDelegate.Invoke(context);
}
catch (Exception exception)
{
await HandleExceptionAsync(context, exception);
}
}
//in startup
app.UseMiddleware<ExceptionHandler>();
我在启动时注册它,这是我做的第一件事以确保它处理其余部分。
【问题讨论】:
-
404 也不例外。您收到响应,但状态码是 404。您必须通过检查状态码来处理错误。
-
@jdweng 我会在哪里做呢?你有我可以看的代码示例吗?
-
您需要检查上下文状态属性以抛出异常。代码可以是您可以访问响应的任何地方。
-
@jdweng 你是说我必须编写一个中间件来检查响应是否为 404?然后返回自定义响应?只是感觉不对……
-
您是否阅读了与此相关的信息?您不必编写自己的中间件处理程序来构建它......您只需要设置它以便它响应,然后您想要捕获您必须通过请求获得较低级别的细节。 docs.microsoft.com/en-us/aspnet/core/fundamentals/… 引用 this 以及与 MVC 相关的项目
标签: c# api asp.net-core-mvc asp.net-core-2.0