24

私の知る限り、不良メモリにアクセスしようとすると EXC_BAD_ACCESS が発生します (間違っている場合は遠慮なく修正してください)。

アプリの完全な失敗を防ぐために、try-catchインのようにキャッチする方法はありますか?Java

4

5 に答える 5

28

いいえ; EXC_BAD_ACCESS物事がレールから大きく外れたことを意味します。プログラムが無効なメモリ アドレスにアクセスしようとしています。つまり、メモリが破損しており、予測可能な回復はありません。

メモリ管理の問題である可能性があります。問題を再現できる場合は、NSZombies をオンにして、何が起こるかを確認してください。または、ここにバックトレースを投稿してください。

iOS/Cocoa でも、try-catch スタイルの例外は回復できないことに注意してください。例外は、回復可能なエラー処理には使用されません。それが NSError の目的です。

于 2013-04-24T20:59:32.737 に答える
3

try catch を使用できますが、まず問題の原因を知る必要があります。現在のビルドで NSZombie を有効にして、エラーをキャッチし、必要性をなくすことができます。現在のスキームを編集し、NSZombie を有効にします。

  • 更新 * Swift2+ は優れたエラー処理機能を備えており、チェックする価値があります。 迅速なエラー処理
于 2013-04-24T20:59:30.127 に答える
3

シグナルハンドラを使用して、 でキャッチできる場合があります。mainただし、いくつかのログを記録する以外に、多くのことを行うことはできません。

于 2013-04-24T22:04:34.573 に答える