NSErrorクラス
解説
エラーが発生した時にエラーの内容を返すためのクラスです。
継承 | NSObject |
準拠 | NSCoding |
NSCopying | |
NSObject (NSObject) | |
フレームワーク | /System/Library/Frameworks/Foundation.framework |
使用可能 | Mac OS X v10.2.7(10.2+safari)以降 |
iOS 2.0以降 | |
定義 | NSError.h |
NSURLError.h |
概要
NSErrorオブジェクトは他のオブジェクトにエラー情報を送信するために、エラーコード・ドメイン・ローカライズされたエラー情報・オプションの辞書などを含んでカプセル化されています。
NSErrorはCoreFoundationのCFErrorRefとトールフリーブリッジです。
NSErrorは抽象クラスではなく、直接使用することができます。サブクラスを作成してローカライズ文字列を提供することも可能です。
エラードメインは主に4種類あります。
NSMachErrorDomain
NSPOSIXErrorDomain
NSOSStatusErrorDomain
NSCocoaErrorDomain
他にもフレームワークで提供しているエラードメインがあります。
エラーオブジェクトの作成
ドメインとエラーコード、追加情報でエラーを作成するには(+ errorWithDomain:code:userInfo)メソッドを使用します。
allocで作成した後、ドメインとエラーコード、追加情報でエラーを初期化するには(– initWithDomain:code:userInfo)メソッドを使用します。
エラープロパティの取得
エラーコードを取得するには(– code)メソッドを使用します。ドメインを取得するには(– domain)メソッドを使用します。追加情報を取得するには(– userInfo)メソッドを使用します。追加情報はNSDictionaryで返されます。
ローカライズされたエラーの詳細の取得
ローカライズされたエラーの詳細を返すには(– localizedDescription)メソッドを使用します。ローカライズされたリカバリーオプションを返すには(– localizedRecoveryOptions)メソッドを使用します。エラーダイアログで
ローカライズされたリカバリー手順を返すには(– localizedRecoverySuggestion)メソッドを使用します。ローカライズされたエラーの理由を返すには(– localizedFailureReason)メソッドを使用します。
存在しないファイルにアクセスしてエラーを起こすサンプル
#pragma mark NSError -(void)method005 { NSError *anError = nil; NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *filename = @"testWritecharset2.bitmap"; NSURL *absoluteURL = [NSURL fileURLWithPathComponents:[NSArray arrayWithObjects:documentsDirectory, filename, nil]]; if ([absoluteURL checkResourceIsReachableAndReturnError:&anError]) { NSLog(@"%s %@",__FUNCTION__,[anError description]); }else { NSLog(@"%s %@",__FUNCTION__,[anError description]); NSLog(@"%s code = %d",__FUNCTION__,[anError code]); NSLog(@"%s domain = %@",__FUNCTION__,[anError domain]); NSLog(@"%s userInfo = %@",__FUNCTION__,[[anError userInfo] description]); NSLog(@"%s localizedDescription = %@",__FUNCTION__,[anError localizedDescription]); NSLog(@"%s localizedRecoveryOptions = %@",__FUNCTION__,[anError localizedRecoveryOptions]); NSLog(@"%s localizedRecoverySuggestion = %@",__FUNCTION__,[anError localizedRecoverySuggestion]); NSLog(@"%s localizedFailureReason = %@",__FUNCTION__,[anError localizedFailureReason]); } }
適合するプロトコル
サブクラス化の注意
引数
参照
メソッド
Errorオブジェクトの作成
+ errorWithDomain:code:userInfo
– initWithDomain:code:userInfo
Errorプロパティの取得
ローカライズされたエラーの詳細の取得
– localizedDescription
– localizedRecoveryOptions
– localizedRecoverySuggestion
– localizedFailureReason