1

是否可以防止应用程序崩溃?

在许多应用程序中,我遇到了很多崩溃,但有时很难找到崩溃的原因,找到解决方案变得很耗时。

我只是想知道是否有任何代码片段可以为您提供崩溃原因,或者我们可以使用@try-@catch 阻止它。

如果可以通过@try-@catch 避免,那么我应该如何、在哪里放置 try-catch?

4

3 回答 3

12

可以通过分析崩溃、诊断原因以及编写或修改代码来防止崩溃来防止崩溃。

不幸的是,软件开发不仅仅是最初的打字。测试和错误修复是您花费大量时间的地方。如果这对你来说太乏味了,我推荐一个不同的职业,因为就是这样。

于 2012-08-17T12:26:49.023 回答
9

我一直在寻找这个解决方案。可以使用以下方法打印更具描述性的跟踪。我认为这可以帮助找到正确的原因。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    
    NSSetUncaughtExceptionHandler(&uncaughtExceptionHandler);     
}

void uncaughtExceptionHandler(NSException *exception) {
    
     NSLog(@"CRASH: %@", exception);
     NSLog(@"Stack Trace: %@", [exception callStackSymbols]);         
}

无法防止应用程序崩溃。但是我们可以使用它获得更详细的跟踪日志。我接受我的问题被错误地提出和不清楚。很抱歉不清楚。

我又在这上面花时间。最后我得到了文章和演示,它将在您的应用程序中捕获您的异常或 BAD_ACCESS。因此,这对于所有开发人员在他们的应用程序中提供诸如 SUBMIT BUG 之类的功能非常有帮助,因此每当用户遇到任何异常时,他们都可以继续或退出或向开发人员提交崩溃报告。它真的很有帮助。我将在我的所有项目中实施。

这是马特·加拉格尔的文章

http://cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html

感谢马特·加拉格尔。

于 2012-08-17T13:34:25.857 回答
2

您可以使用 try-catch-finally 块来避免应用程序崩溃,如下所示:

    -(void)functionInsideWhichAppIsCrashing
    {

       @try 
    {
      //Your crashing code goes here
    }

    @catch ( NSException *e )
     {
    NSLog(@"Crash Reason:@"%@", [e reason]);
               }

@finally {// Do whatever you want to do in crash situation
                   }



} 
于 2012-08-18T21:13:29.400 回答