Przeglądaj źródła

统一异常处理中HTTP状态码为400,移除SQL异常分支

本次提交将 ExceptionHandlingMiddleware 中的默认异常响应状态码由 500 修改为 400,移除了对 SqlException(如数据库超时)的特殊处理,所有异常统一返回 400 状态码。此调整简化了异常处理逻辑,但可能影响前端对不同错误类型的区分。
Lyyyi 1 dzień temu
rodzic
commit
bca8bfb305

+ 2 - 3
OASystem/OASystem.Api/Middlewares/ExceptionHandlingMiddleware.cs

@@ -68,7 +68,7 @@ namespace OASystem.API.Middlewares
                 var response = context.Response;
                 var errorResponse = new JsonView
                 {
-                    Code = StatusCodes.Status500InternalServerError,
+                    Code = StatusCodes.Status400BadRequest,
                     Data = ""
                 };
 
@@ -80,7 +80,6 @@ namespace OASystem.API.Middlewares
                         errorResponse.Msg = businessEx.Message;
                         errorResponse.Code = StatusCodes.Status400BadRequest; // 设置正确的 HTTP 状态码
                         break;
-
                     case SqlException sqlEx when sqlEx.Number == -2:
                         response.StatusCode = StatusCodes.Status503ServiceUnavailable;
                         errorResponse.Msg = "数据库连接超时,请稍后重试。";
@@ -110,7 +109,7 @@ namespace OASystem.API.Middlewares
                             : ex.Message;
                         break;
                     default:
-                        response.StatusCode = StatusCodes.Status500InternalServerError;
+                        response.StatusCode = StatusCodes.Status400BadRequest;
                         errorResponse.Msg = "服务器内部错误"; // 不直接暴露异常详细信息
                         break;
                 }

+ 0 - 4
OASystem/OASystem.Api/Program.cs

@@ -250,10 +250,6 @@ builder.Services.AddScoped(options =>
             //获取无参数SQL对性能有影响,特别大的SQL参数多的,调试使用
             //UtilMethods.GetSqlString(DbType.SqlServer, exp.sql, exp.parameters);
 
-
-
-
-
         };
         //修改SQL和参数的值
         db.Aop.OnExecutingChangeSql = (sql, pars) =>