Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中处理致命错误_Ios_Objective C_Swift - Fatal编程技术网

在iOS中处理致命错误

在iOS中处理致命错误,ios,objective-c,swift,Ios,Objective C,Swift,在iOS中处理致命错误(任何类型)是否可能?我不是在寻找一些神奇的方法让应用程序保持活力,只是想在应用程序消失之前通知用户出了问题(例如警报)。致命错误是运行时错误。您不会捕获致命错误,因为它们表示编程错误,所以您应该修复代码。崩溃是以这样一种方式构建的,因此除非修复代码中的错误,否则无法停止崩溃。让用户知道出了问题是无法做到的,而且无论如何也无济于事,除非你让它正常工作 为了证明它们无法停止,除非您更改代码,我们可以在do try catch结构中放置一些可能导致致命错误的内容: do{

在iOS中处理致命错误(任何类型)是否可能?我不是在寻找一些神奇的方法让应用程序保持活力,只是想在应用程序消失之前通知用户出了问题(例如警报)。

致命错误是运行时错误。您不会捕获致命错误,因为它们表示编程错误,所以您应该修复代码。崩溃是以这样一种方式构建的,因此除非修复代码中的错误,否则无法停止崩溃。让用户知道出了问题是无法做到的,而且无论如何也无济于事,除非你让它正常工作

为了证明它们无法停止,除非您更改代码,我们可以在
do try catch
结构中放置一些可能导致致命错误的内容:

do{
    var car: String? = nil
    try print(car!)
}
catch{
    print("Something went worng")
}
显然,这仍然与以下因素有关:

致命错误:在展开可选值时意外发现nil


因此,您必须修复您的程序。

当出现问题时,例如展开
nil
,可能会发生两种情况。如果有正确的try catch,并且错误被捕获,那么您的应用程序将继续工作。否则,您将最终遇到致命错误,导致应用程序崩溃。因此,致命错误是缺乏异常处理的结果,在崩溃发生之前,您不能停止它并向用户显示某些内容。

正如前面提到的其他错误一样,致命错误永远不会发生。尽你所能防止错误的发生


您可以使用
do catch
块和正确处理选项来防止它们。我建议你阅读苹果的文档!祝你好运

虽然无法直接通知用户错误,因为您将在控制台中打印,但使用guard语句将帮助您避免致命错误,方法是首先检查可选值是否存在,如果可选值不存在,则提前返回。这将避免你的应用程序有时崩溃

我明白了,这就是我写的,我不是在寻找一种方法来阻止应用程序崩溃。我只是想知道是否有某种方法可以在应用程序崩溃之前执行一些代码。基本上,我想实现的是以某种方式“观察”崩溃事件,在崩溃事件上向用户显示警报,然后在用户单击确定->继续crash@user3581248你不能,为什么要投否决票?