gpt4 book ai didi

objective-c - 未调用未捕获的异常处理程序

转载 作者:搜寻专家 更新时间:2023-10-30 20:00:50 24 4
gpt4 key购买 nike

我试图在我的 Mac 应用程序上捕获异常,以便我可以将它们记录在自定义日志文件中。我正在像这样实现异常处理程序:

void uncaughtExceptionHandler(NSException *exception) {
NSLog(@"It Works!");
}

我在我的 -applicationDidFinishLaunching: 方法中这样设置它:

NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);

然后我引发一个异常来测试它:

[[NSArray arrayWithObject:@"object"] objectAtIndex:1];

异常被记录到控制台,但我的异常处理程序没有被调用。

有什么想法吗?

最佳答案

解决方案是使用ExceptionHandling 框架。这是我的做法:

-applicationDidFinishLaunching:

[[NSExceptionHandler defaultExceptionHandler] setExceptionHandlingMask:NSLogAndHandleEveryExceptionMask];
[[NSExceptionHandler defaultExceptionHandler] setDelegate:self];

然后在我的 App Delegate 类中实现两个委托(delegate)方法,

- (BOOL)exceptionHandler:(NSExceptionHandler *)sender shouldLogException:(NSException *)exception mask:(NSUInteger)aMask
- (BOOL)exceptionHandler:(NSExceptionHandler *)sender shouldHandleException:(NSException *)exception mask:(NSUInteger)aMask

现在我可以捕获所有异常了!

关于objective-c - 未调用未捕获的异常处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9797922/

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