2011-04-18 148 views
29

try{}catch構造是C++,Java &相關語言通用的。在iOS SDK中是否有這樣的功能? [爲iPhone/Objective-C的的try-catch異常處理做法]的嘗試在iPhone中抓住?

+0

可能重複(http://stackoverflow.com/questions/3678438/try-catch-exception-handling-practice-for-iphone- objective-c) – ceejayoz 2011-04-18 14:06:08

+6

一些建議,因爲它看起來像是從Java世界過來的:在iOS中,異常很少用於程序控制。一個例外幾乎總是意味着程序員犯了錯誤,應該修正。 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html#//apple_ref/doc/uid/TP40001806-CH204-BAJIIGCC – kubi 2011-04-18 14:13:56

+2

下面是描述了一個更好的鏈接在可可/ iOS的例外的作用:http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError.html#//apple_ref/doc/uid/TP40001806-CH204-BAJIIGCC – kubi 2011-04-18 14:20:22

回答

92
@try { 
    // Try something 
} 
@catch (NSException * e) { 
    NSLog(@"Exception: %@", e); 
} 
@finally { 
    // Added to show finally works as well 
} 
+4

好奇:有沒有發現異常的情況下,不會是'NSException'類型?更重要的是,是否會出現'NSLog'可能爆炸的情況?如果你認爲這是一個不同的問題,讓我知道,我會正確地問。 – 2012-01-12 19:12:31

+0

是的,您可以捕獲特定異常或自定義異常。查看「捕獲不同類型的例外」下的例子。 http://developer.apple.com/library/ios/#documentation/cocoa/conceptual/objectivec/Chapters/ocExceptionHandling.html – IanStallings 2012-11-29 04:41:11