/// <summary>
///
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public override async Task OnExceptionAsync(ExceptionContext context)
{
var response = new ResponseModel(false, context.Exception.Message);
context.Result = new JsonResult(response);
await base.OnExceptionAsync(context);
}
ResponseModel为我自定义的返回类型,包含三个属性:code,message,data。
但是结果没达到要求:
{
"error": {
"code": null,
"message": "An internal error occurred during your request!",
"details": null,
"data": {
"Server Error Code": 1146,
"SqlState": "42S02"
},
"validationErrors": null
}
}
如何在OnException或者OnExceptionAsync中捕获到异常后,立即返回结果?
楼主问题中的代码,可以使用markdown方式粘贴,不然排版实在不忍直视啊。
.net core自定义全局异常处理,可以参考:
嗯嗯,谢谢大佬。
public override async Task OnExceptionAsync(ExceptionContext context)
{
var response = new ResponseModel(false, context.Exception.Message);
context.Result = new ContentResult
{
// 返回状态码设置为200,表示成功
StatusCode = StatusCodes.Status500InternalServerError,
// 设置返回格式
ContentType = "application/json;charset=utf-8",
Content = JsonConvert.SerializeObject(response)
};
context.ExceptionHandled = true;
}
主要是这段代码:context.ExceptionHandled = true;
建议改进一下排版,支持 markdown 语法
– dudu 3年前@dudu: 哦哦,好的。下次提问题必须排版。
– 屌丝大叔的笔记 3年前@dudu: 已改
– 屌丝大叔的笔记 3年前