XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension.NetCore.ServerInteractive

[DLL] Server interaction extension, including user identity verification and querying in conjunction with AutoConfig

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension.NetCore.ServerInteractive

重构异常处理与日志,提升健壮性与可读性

将 XFEServerCore_ServerCoreError 方法改为静态方法,并用 try-catch 包裹整体逻辑,防止异常未被捕获导致崩溃。对 CloseWithError 调用增加嵌套异常处理,详细输出错误和堆栈信息。优化 for 循环写法,简化分支结构,提升代码可读性和维护性。

9425ad6
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

1 个文件 +19 -9
Modified XFEExtension.NetCore.ServerInteractive/Utilities/Server/Services/CoreService/ServerCoreExceptionProcessService.cs +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 }