gpt4 book ai didi

macos - 避免 Mac 应用程序在未处理的异常后崩溃

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

我想防止我的应用程序在引发未处理的异常后关闭。

我正在用 Xamarin 和 MonoMac 做这件事,但我想我可以将 Objective-C 的答案翻译成 C#。

当异常发生并且没有在任何地方被捕获时,我注册未处理异常的事件:

AppDomain.CurrentDomain.UnhandledException += HandleUnhandledException;

并记录它:
static void HandleUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//Log the exception...
}

但是,当发生异常时,会执行 HandleUnhandledException 并退出事件循环:
NSApplication.Main(args);

所以我的应用程序结束。我怎样才能避免这种情况?我应该在哪里放置 try-catch 块?

最佳答案

xamarin 开发者中心是这么说的:

“您可以向 AppDomain.CurrentDomain.UnhandledException 事件添加一个事件处理程序,当发生未处理的托管异常时,您将收到通知 (请注意,无论您做什么,该应用程序都会在您从事件处理程序返回后立即退出)唯一的目的是让您收集诊断信息 。而且它只会捕获托管异常,而不是 native 崩溃,这是退出应用程序的另一个原因)。

因此,显然,您可以添加一个全局 try catch 块,但这只是告诉您有关托管异常的信息,并且应用程序将在 try catch 结束时退出。所以它不会完全达到你的目的。

关于macos - 避免 Mac 应用程序在未处理的异常后崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23909348/

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