Objective c 目标C-捕获的异常导致崩溃

Objective c 目标C-捕获的异常导致崩溃,objective-c,exception-handling,crash,uncaught-exception,Objective C,Exception Handling,Crash,Uncaught Exception,我正在做一些客观的C测试。我正在使用以下代码引发一个自定义异常: - (double)foo:(int)x{ if (x == 0){ [NSException raise:@"InvalidX" format:@"X can't be 0"]; } return 1/x; } @try { double y = [self foo:0]; } @catch (NSException *e) { return; } 并使用以下代码捕获它: - (do

我正在做一些客观的C测试。我正在使用以下代码引发一个自定义异常:

- (double)foo:(int)x{
   if (x == 0){
      [NSException raise:@"InvalidX" format:@"X can't be 0"];
   }
   return 1/x;
}
@try {
   double y = [self foo:0];
} @catch (NSException *e) {
   return;
}
并使用以下代码捕获它:

- (double)foo:(int)x{
   if (x == 0){
      [NSException raise:@"InvalidX" format:@"X can't be 0"];
   }
   return 1/x;
}
@try {
   double y = [self foo:0];
} @catch (NSException *e) {
   return;
}
如果我在XCode中运行应用程序,效果很好,但当我运行.app时,它会崩溃:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000

Application Specific Information:
objc[1769]: garbage collection is OFF
*** Terminating app due to uncaught exception 'InvalidX', reason: 'X can't be 0'
*** First throw call stack:

它看起来不像是“未经破坏的”!我无法解释这一点

您确定要在Xcode之外运行最新的可执行文件吗?是的,我确定。我正在用Product->Archive->Share->application创建可执行文件,首先从异常处理程序返回是个坏主意