跳到主要内容
版本:0.6.0

异常处理器

Sharkable 内置了全局异常处理中间件,能将未处理的异常转换为统一的 UnifiedResult<T> JSON 响应。

全局异常处理器

调用 app.UseShark() 时默认启用。会捕获端点和中间件中所有未处理的异常,映射为 HTTP 状态码,并返回 UnifiedResult<object?> JSON 响应。

默认状态码映射

异常类型HTTP 状态码
KeyNotFoundException404 Not Found
UnauthorizedAccessException401 Unauthorized
ArgumentException400 Bad Request
其他异常500 Internal Server Error

响应格式

{
"StatusCode": 404,
"Data": null,
"ErrorMessage": "user not found",
"Extra": null,
"TimeStamp": 1780881487673,
"Result": null
}

在开发模式(ASPNETCORE_ENVIRONMENT=Development)下,错误信息会包含完整堆栈跟踪。

自定义错误映射

app.UseShark(opt => { });

// 或单独使用:
app.UseSharkExceptionHandler(opt =>
{
opt.Map<MyCustomException>(HttpStatusCode.Forbidden);
});

禁用

app.UseShark(opt =>
{
opt.EnableExceptionHandler = false;
});