QuickAdminRCLSettingsAlwaysReturnHttp200OnApiException Property
指示当 API 发生未处理异常时,是否始终返回 HTTP 200 状态码。
Namespace: QuickAdmin.Common.ConfigurationAssembly: QuickAdmin.Net (in QuickAdmin.Net.dll) Version: 2.0.13
public bool AlwaysReturnHttp200OnApiException { get; set; }
Property Value
bool默认
true。
如果为 false,则会返回真实的 HTTP 状态码(如 500)。
如果为 true,前端即使遇到服务器异常也会收到 HTTP 200,且:
若是常规 API 调用,将返回以下 JSON:
{code: -2, msg: "服务端发生异常"} // -2 是枚举 ServiceErrorCode.ServerError 值
若是 FineUICore post back,将自动弹出一个错误提示框。
仅在你使用了内置的 Error 页面时此设置才有效,即启动代码里有:
app.UseExceptionHandler("/QAdmin/Common/Error"); // 处理:未捕获异常
app.UseStatusCodePagesWithReExecute("/QAdmin/Common/Error", "?code={0}"); // 处理:404/403 等状态码错误
不过
UseExceptionHandler()/
UseStatusCodePagesWithReExecute() 通常在开发环境下不会被调用,创建项目后,自动生成的代码会根据环境进行配置:
// 在非开发环境下,才去调用
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/QAdmin/Common/Error"); // 处理:未捕获异常
app.UseStatusCodePagesWithReExecute("/QAdmin/Common/Error", "?code={0}"); // 处理:404/403 等状态码错误
...
}
你可将
if (!app.Environment.IsDevelopment()) 注释掉,以便查看 QuickAdmin.Net 内置的错误处理效果。