 
        /// <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 4年前@dudu: 哦哦,好的。下次提问题必须排版。
– 屌丝大叔的笔记 4年前@dudu: 已改
– 屌丝大叔的笔记 4年前