【问题标题】:iOS + How to catch unhandled exceptioniOS + 如何捕获未处理的异常
【发布时间】:2011-10-27 18:17:42
【问题描述】:

我们正在编写静态库。我们已经对暴露的 API 进行了异常处理。但是仍然很少有未处理的异常(或操作系统异常)。你能告诉我如何捕捉这些未处理的异常吗? 谢谢

【问题讨论】:

    标签: ios objective-c exception


    【解决方案1】:

    你可以使用NSSetUncaughtExceptionHandler,你可能应该把它添加到AppDelegate

    您可以在此页面上找到示例:http://www.learn-cocos2d.com/tag/nssetuncaughtexceptionhandler/

    【讨论】:

      【解决方案2】:

      嗯,你总是可以依靠 Catch'em All Principle

      对于此类问题,我总是使用以下代码:

      @try {
          // do something
      }
      @catch (NSException *exception) {
          // error happened! do something about the error state
      }
      @finally {
          // do something to keep the program still running properly
      }
      

      【讨论】:

      • 是的,使用 try/catch 块,我们可以捕获该函数中发生的任何异常或捕获从此 API 调用的函数抛出的异常。
      • 有了这个语句,每一个异常都会被捕获。
      【解决方案3】:

      简单——

             @try
              {
                   //your code
              }
              @catch (NSException *theException) 
              {
                  NSLog(@"Exception: %@", theException);
              }
      

      编码愉快...

      【讨论】:

      • 有什么方法可以捕获系统异常/内存不足异常/硬件异常等低级异常?
      猜你喜欢
      • 1970-01-01
      • 2015-09-10
      • 2017-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-22
      • 2018-10-19
      • 1970-01-01
      相关资源
      最近更新 更多