是否可以防止应用程序崩溃?
在许多应用程序中,我遇到了很多崩溃,但有时很难找到崩溃的原因,找到解决方案变得很耗时。
我只是想知道是否有任何代码片段可以为您提供崩溃原因,或者我们可以使用@try-@catch 阻止它。
如果可以通过@try-@catch 避免,那么我应该如何、在哪里放置 try-catch?
可以通过分析崩溃、诊断原因以及编写或修改代码来防止崩溃来防止崩溃。
不幸的是,软件开发不仅仅是最初的打字。测试和错误修复是您花费大量时间的地方。如果这对你来说太乏味了,我推荐一个不同的职业,因为就是这样。
我一直在寻找这个解决方案。可以使用以下方法打印更具描述性的跟踪。我认为这可以帮助找到正确的原因。
- (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
感谢马特·加拉格尔。
您可以使用 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
}
}