gpt4 book ai didi

c# - 从异常处理程序获取 ExitCode

转载 作者:行者123 更新时间:2023-12-02 17:24:24 25 4
gpt4 key购买 nike

我的控制台应用程序中有以下错误处理程序

主要流程:

AppDomain.CurrentDomain.UnhandledException +=
new UnhandledExceptionEventHandler(ErrorHandler);

处理程序:

static void ErrorHandler(object sender, UnhandledExceptionEventArgs args)
{
Exception e = (Exception)args.ExceptionObject;
... Loging Error ...
//Environment.Exit(?);
}

问题是记录了错误,但在应用程序失败并显示窗口弹出窗口(应用程序没有响应)之后。

所以我想添加Environment.Exit()来防止这种行为,但是如何从异常中指定exitCode?我不想设置 Exit(0) (这意味着一切都好),因为我还想在触发此脚本的调度程序应用程序中看到错误(仅显示发生了某些错误,异常已记录的信息)。

谢谢

最佳答案

大多数程序员只是使用Environment.Exit(1)。几乎总是工作得很好。但这在技术上是不正确的,如果程序因异常而终止,那么其退出代码通常与底层异常错误代码相同。事件处理程序不应更改该行为。

正确地做起来很困难:

   Environment.Exit(System.Runtime.InteropServices.Marshal.GetHRForException(e));

这里有一个 FUD 因素,您不能完全信任具有未设置错误代码的自定义异常对象的库。仍然可以,后备是 E_FAIL。

关于c# - 从异常处理程序获取 ExitCode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32394877/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com