2011年4月12日 星期二

[轉]Objective-C 2.0 的例外處理方法

from : http://www.furnace.idv.tw/

例外就是由程式中無法預期的條件所產生的錯誤,如果沒有在程式中放入適當的例外處理,就有可能因為執行錯誤而導致整個程式終止。
若要進行例外處理,就必須把預期會產生錯誤的程式碼放置於 @try 區塊中,之後在 @catch 區塊中放置錯誤時的處理程序,程式會在 @try 區塊拋出例外時,主動執行 @catch 區塊內的程式碼,而不會因為錯誤而停止整個程式的運作。
@finally 區塊則是無論 @try 區塊有沒有拋出例外都會執行,@throw 指令可以讓你拋出自己的例外,你可以使用它拋出一個特定另外,或是在 @catch 區段裡拋出例外,下面程式碼將示範自訂拋出例外的方法並顯示拋出例外之後的結果。
@try  NSException *e = [NSException exceptionWithName:@"讀取錯誤" reason:@"系統內找不到所需要的檔案" userInfo:nil];  @throw e;  }  @catch(NSException *e)  NSLog(@"例外:%@\n原因:%@",[e name], [e reason]); } 上述程式碼製作一個 NSException 的物件 e,並且設定自訂的例外內容,最後使用 @throw 指令丟出此例外。只要在 @try 區塊中有例外產生,程式就會主動執行 @catch 區塊,在上述程式碼中,@catch 區塊的動作只是將該例外的設定內容印出,並沒有做任何處理。而一個程式可以擁有多個 @catch 區段,以捕捉和處理不同的例外型態,這就要看你怎麼去應用了。
例外處理相關區塊的小整理 @try { 可能產生錯誤的程式碼 } @catch { 發生錯誤時處理 } @finally { 一定會執行的處理 } @throw { Error 物件 }

沒有留言:

張貼留言