2010年12月08日

Objective-C@iOSの例外処理

環境iOS(iPhone) SDK 4.0

最近Objective-CでiOSのアプリケーションを書いているのですが、ライブラリ的な役割をするコードで異常を検出した際、 呼び出し元への通知に例外処理を使ってよいのかどうかで良く悩みます。

Objective-Cは例外処理をサポートしていて、構文やサンプルコードはググれば簡単に見つかります。 しかしながら、具体的にどのような異常に例外処理を適用するべきかが良く分かりません。

私はこういうときは、標準的なライブラリの挙動を参考にするのですが、 iOS SDKのライブラリを使っていてもあまり例外に遭遇しないので、参考になりません。

例えばNSStringクラスの 文字列を整数に変換するメソッドであるintValueは、整数に変換できない文字列を受けても0を返すだけです。

Javaで似たようなことをするIntegerクラスのparseIntは、 整数に変換できない文字列を受けてNumberFormatExceptionを投げます。

そもそもObjective-Cの仕様として、nilのメソッドを呼び出しても何もエラーがおきません。 最近はこれを頼りにコードを書いてしまっているので、Javaに移ったらNullPointerExceptionの嵐に悩まされそうでちょっと怖いです。

という感じで、例外を受け取ることがあまりないので、どんなときに例外処理を使えば良いのか分からないでおります。 私の書くコードは、メソッドの戻り値でエラーを返すコードばかりです。 さてどうしたものやら。

投稿者 MASATO : 2010年12月08日 23:29 | トラックバック
コメント
コメントする









名前、アドレスを登録しますか?