XFEExtension.NetCore.ServerInteractive
[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig
关注
0
Fork
0
Star
0
返回提交历史
Modified
XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/ServerCoreExceptionProcessService.cs
+19
-9
XFEstudio/XFEExtension.NetCore.ServerInteractive
重构异常处理与日志,提升健壮性与可读性
将 XFEServerCore_ServerCoreError 方法改为静态方法,并用 try-catch 包裹整体逻辑,防止异常未被捕获导致崩溃。对 CloseWithError 调用增加嵌套异常处理,详细输出错误和堆栈信息。优化 for 循环写法,简化分支结构,提升代码可读性和维护性。
9425ad6
代码差异
1 个文件
+19
-9
@@ -19,10 +19,11 @@ public class ServerCoreExceptionProcessService : ServerCoreOriginalServiceBase
19
19
XFEServerCore.ServerCoreError += XFEServerCore_ServerCoreError;
20
20
}
21
21
22
private async void XFEServerCore_ServerCoreError(XFEServerCore sender, ServerCoreErrorEventArgs e)
22
private static async void XFEServerCore_ServerCoreError(XFEServerCore sender, ServerCoreErrorEventArgs e)
23
23
{
24
if (!e.Handled && e.ReturnArgs is not null)
24
try
25
25
{
26
if (e.Handled || e.ReturnArgs is null) return;
26
27
var currentException = e.ServerException?.InnerException;
27
28
var errorMessage = e.ServerException?.Message ?? "服务器内部异常";
28
29
var errorInfo = string.Empty;
@@ -34,17 +35,14 @@ public class ServerCoreExceptionProcessService : ServerCoreOriginalServiceBase
34
35
}
35
36
else
36
37
{
37
for (int i = 0; i < 5; i++)
38
for (var i = 0; i < 5; i++)
38
39
{
39
40
if (currentException is null)
40
41
{
41
42
break;
42
43
}
43
else
44
{
45
errorMessage += $":{currentException.Message}";
46
currentException = currentException.InnerException;
47
}
44
errorMessage += $":{currentException.Message}";
45
currentException = currentException.InnerException;
48
46
}
49
47
errorInfo = "服务器内部异常";
50
48
Console.WriteLine();
@@ -52,11 +50,23 @@ public class ServerCoreExceptionProcessService : ServerCoreOriginalServiceBase
52
50
if (e.ServerException?.InnerException?.StackTrace is not null)
53
51
Console.WriteLine($"[TRACE]{e.ServerException?.InnerException?.StackTrace}");
54
52
}
53
55
54
try
56
55
{
57
56
await e.ReturnArgs.CloseWithError(errorInfo, e.StatusCode);
58
57
}
59
catch { }
58
catch (Exception ex)
59
{
60
Console.WriteLine($"[ERROR]发送错误响应时发生异常:{ex.Message}");
61
if (ex.StackTrace is not null)
62
Console.WriteLine($"[TRACE]{ex.StackTrace}");
63
}
64
}
65
catch (Exception ex)
66
{
67
Console.WriteLine($"[ERROR]处理服务器异常时发生异常:{ex.Message}");
68
if (ex.StackTrace is not null)
69
Console.WriteLine($"[TRACE]{ex.StackTrace}");
60
70
}
61
71
}
62
72
}