|
@@ -26,7 +26,7 @@ namespace TEAMModelOS.SDK.Context.Filter
|
|
|
/// <returns></returns>
|
|
|
public async Task Invoke(HttpContext context)
|
|
|
{
|
|
|
-
|
|
|
+ int bizCode = 0;
|
|
|
System.Exception exs = null;
|
|
|
bool isCatched = false;
|
|
|
try
|
|
@@ -39,7 +39,15 @@ namespace TEAMModelOS.SDK.Context.Filter
|
|
|
//自定义业务异常
|
|
|
if (ex is BizException)
|
|
|
{
|
|
|
- context.Response.StatusCode = ((BizException)ex).code;
|
|
|
+ bizCode = ((BizException)ex).code;
|
|
|
+ if (bizCode == 401 || bizCode == 404 || bizCode == 502 || bizCode == 403)
|
|
|
+ {
|
|
|
+ context.Response.StatusCode = bizCode;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ context.Response.StatusCode = 200;
|
|
|
+ }
|
|
|
+ // context.Response.StatusCode = ((BizException)ex).code;
|
|
|
}
|
|
|
//未知异常
|
|
|
else
|
|
@@ -47,7 +55,7 @@ namespace TEAMModelOS.SDK.Context.Filter
|
|
|
context.Response.StatusCode = 500;
|
|
|
//LogHelper.SetLog(LogLevel.Error, ex);
|
|
|
}
|
|
|
- await HandleExceptionAsync(context, context.Response.StatusCode, ex.Message, ex.StackTrace);
|
|
|
+ await HandleExceptionAsync(context, bizCode, ex.Message, ex.StackTrace);
|
|
|
isCatched = true;
|
|
|
}
|
|
|
finally
|
|
@@ -76,7 +84,7 @@ namespace TEAMModelOS.SDK.Context.Filter
|
|
|
msg = "Unknown Error";
|
|
|
break;
|
|
|
}
|
|
|
- await HandleExceptionAsync(context, context.Response.StatusCode, msg, exs == null ? "" : exs.StackTrace);
|
|
|
+ await HandleExceptionAsync(context, bizCode, msg, exs == null ? "" : exs.StackTrace);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -89,9 +97,9 @@ namespace TEAMModelOS.SDK.Context.Filter
|
|
|
/// <param name="statusCode"></param>
|
|
|
/// <param name="msg"></param>
|
|
|
/// <returns></returns>
|
|
|
- private static async Task HandleExceptionAsync(HttpContext context, int statusCode, string msg, string devmsg)
|
|
|
+ private static async Task HandleExceptionAsync(HttpContext context, int bizCode, string msg, string devmsg)
|
|
|
{
|
|
|
- var data = new ErrorResponse<string>(statusCode, msg, devmsg);
|
|
|
+ var data = new ErrorResponse<string>(bizCode, msg, devmsg);
|
|
|
context.Response.ContentType = Constants.CONTENT_TYPE_JSON;
|
|
|
await context.Response.WriteAsync(JsonNetHelper.ToJson(data));
|
|
|
}
|