CrazyIter 5 vuotta sitten
vanhempi
commit
3f64d15b17
1 muutettua tiedostoa jossa 14 lisäystä ja 6 poistoa
  1. 14 6
      TEAMModelOS.SDK/Context/Filters/HttpGlobalExceptionInvoke.cs

+ 14 - 6
TEAMModelOS.SDK/Context/Filters/HttpGlobalExceptionInvoke.cs

@@ -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));
         }