【发布时间】:2012-10-02 03:58:43
【问题描述】:
在 Xcode 中我可以创建一个断点来捕获所有异常(异常断点)。然而,这个断点也会在 try-catch 情况下触发。
我正在使用第三方库,所以 try-catch 情况是事实,而不是选项。
有没有办法只处理未捕获的异常,而不是所有异常?
【问题讨论】:
标签: xcode exception exception-handling breakpoints uncaught-exception
在 Xcode 中我可以创建一个断点来捕获所有异常(异常断点)。然而,这个断点也会在 try-catch 情况下触发。
我正在使用第三方库,所以 try-catch 情况是事实,而不是选项。
有没有办法只处理未捕获的异常,而不是所有异常?
【问题讨论】:
标签: xcode exception exception-handling breakpoints uncaught-exception
您可以在线程的条目中放置一个顶级try/catch。
您可能还对NSSetUncaughtExceptionHandler感兴趣。
通常,顶级处理程序在生产中几乎没有用处(您实际上并没有试图从您不准备处理的问题中恢复,但它可能对最后一句话或断点有用)。理想情况下,当且仅当您可以处理异常时,您将使用 try/catch 保护您从这些库接口的退出。要么,要么 nothrow 在开发过程中作为快速调试工具。
如果您试图捕获 Cocoa 异常,那就让它死掉,然后将错误提交给任何认为 Cocoa 异常应该可以恢复的人。
【讨论】: