2010-12-07 14 views
1

Objective-Cで例外を処理する方法を教えてください。私はコーディング中にNSInvalidArgumentExceptionを取得しています。ブレークポイントを使用して、例外がどこで発生しているのか把握することができます。私はこのようなものを試しました:Objective-Cでの例外の処理

@try{ 
    //My code 
} 
@catch(id e){ 

} 

しかし、それは動作していません。

+0

あなたの質問に実際のエラーメッセージを貼り付けてください。 – bbum

+1

私はあなたの質問を英語に似て書き直しましたが、私はあなたの最初の点を保存していることを願っています。私が何かを台無しにした場合は教えてください。乾杯! –

答えて

1

:マット・ギャラガーによって、このブログSTを読みますあなたのコードのバグを示しています。 Kenが言うように、事実上制御されたクラッシュです。この例外の最も一般的な原因は、例えばnilをコリジョンに挿入しようとしていることです。 NSMutableArrayまたはNSMutableDictionary。それが問題であれば、 "Objective-C例外で停止"を有効にして、デバッガでコードを実行することで簡単に見つけることができます。

3

ココアでは、特別な情報(例外はありませんが、< - ha!)を含むクラッシュとして例外を考えるべきです。

NSInvalidArgumentException例外を処理する必要はありません。なぜそれが起こったのかを理解し、それが起こらないようにコードを変更する必要があります。 Objective-Cの例外にXCodeの、選択停止中ファイル名を指定して実行メニューへ

3

移動します。これで、実際に例外をスローしている場所でコードが停止するので、どの行でトリガされたのか正確に確認できます。

1

例外を生成しないコードを書くよう常に努力する必要があります。つまり、iOSで例外を処理することができます。しかし

@try 
{ 
    //Your code 
} 
@catch(NSException* e) // or subclass of NSException 
{ 

} 

そのままあなたは、NSInvalidArgumentExceptionをキャッチしたくない:あなたがこれを行う必要があるObjective-Cで例外をキャッチするには http://cocoawithlove.com/2010/05/handling-unhandled-exceptions-and.html