NSSetUncaughtExceptionHandler仅适用于NSExceptions.看到这个SO答案的精彩解释.
要捕获Swift运行时错误,请执行信号处理程序SIGTRAP.据我所知,SWIFT CODE将终止与该程序SIGTRAP,如果它检测在运行时只,即意外情况异常类型SIGTRAP有利于捕捉斯威夫特错误,其余的像SIGSEGV,SIGBUS,SIGILL不工作.我在这个苹果链接中找到了这个信息.
如果你的代码是Objective-C和Swift的混合,那么实现它们NSSetUncaughtExceptionHandler和信号处理程序来处理崩溃.
有关理解和实现信号处理,请参阅此链接.
希望这可以帮助.
Swift 5 你可以像这样处理应用程序崩溃
NSSetUncaughtExceptionHandler { (exception) in
let stack = exception.callStackReturnAddresses
print("Stack trace: \(stack)")
}
Run Code Online (Sandbox Code Playgroud)
你的问题有多个方面,我来尝试解答一下:
NSSetUncaughtExceptionHandler只捕获未捕获的异常,这只是可能崩溃的一小部分。对于您的具体情况:您不应该这样做,也不应该尝试这样做。这可能会导致用户数据损坏或更多数据丢失。该应用程序因严重问题而严重崩溃,最好解决该问题。
| 归档时间: |
|
| 查看次数: |
8693 次 |
| 最近记录: |