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 に答える