So-net無料ブログ作成
検索選択

Objective-Cの例外処理の方法 [Cocoa覚え書き]

Objective-Cの例外処理は、C++のtry/catch/throwとやりかたはかわらない。
○例外の取得方法(catch)
NS_DURING

 例外が発生しそうな処理

NS_HANDLER
 捕獲した例外の対処
NS_ENDHANDLER

通常、例外を捕獲しないと、そこで処理が終わってしまう(おそらく、run loopへ戻る)が、ハンドラで捕獲すると、そのまま実行し続けることもできる。

NS_HANDLERとNS_ENDHANDLERの間の例外処理には
NS_VALUERETURN();とNS_VOIDRETURN;を使ってメソッドから抜け出すことができる。

○例外の発生(throw)
NSExceptionのインスタンスを作成して、インスタンスメソッドのriseを実行する。
例えば、
[[NSException exceptionWithName:NSInvalidArgumentException reason:@"i don't like this." userInfo:nil] raise];

exceptionWithNameのところは、ユーザ定義で任意の文字列を使用することもできる。NSExceptionのクラス定義(ヘッダファイル)を見ると、既にいくつか定義されている。
詳細は、Objective-C/Exceptionのドキュメント参照のこと。

(この記事がNGワードチェッカにかからないことを祈る(笑))


nice!(0)  コメント(0)  トラックバック(1) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 1

Objective-Cの2つの例外処理(藤棚工房別棟 −徒然− 2005-06-26 10:22)

藤棚工房別棟 −徒然−:XcodeでObjective-Cの例外処理を有効にするに書いたような@try, @catch(), @throw, @finallyなどを使用した例外処理はコンパイラオプションの-fobjc-exceptionを使用する必要があります。 私がObjective…[続く]

この記事のトラックバックURL:
※言及リンクのないトラックバックは受信されません。

関連リンク

Copyright © 2005-2009, Finky All Rights Reserved.

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。