0
引發的異常,我們正在使用下面的代碼提高例外:如何避免記錄調用棧時,在Xcode
[NSException raise:@"ExceptionName" format:@"XYZ"];
時發生異常,調用堆棧同時登錄控制檯。我們不希望在控制檯中記錄調用堆棧。如何避免這一點。
引發的異常,我們正在使用下面的代碼提高例外:如何避免記錄調用棧時,在Xcode
[NSException raise:@"ExceptionName" format:@"XYZ"];
時發生異常,調用堆棧同時登錄控制檯。我們不希望在控制檯中記錄調用堆棧。如何避免這一點。
可可不能很好地與例外混合(習慣C++是另一回事)。您應該一般認爲異常在Cocoa中是不可恢復的。因此,您應該考慮在Cocoa中考慮另一種(更習慣的)錯誤處理形式。因此,簡短的回答是:「不要拋出/拋出異常,除非你不打算恢復」。
還不滿意?
你有能力捕獲異常,並試圖繼續:
#import <Foundation/Foundation.h>
static void A() {
[NSException raise:@"ExceptionName" format:@"XYZ"];
}
int main(int argc, const char * argv[]) {
@autoreleasepool {
@try {
A();
}
@catch (NSException * e) {
NSLog(@"e=mc%p", e);
NSLog(@"What I meant to say is: %@", e);
}
}
return 0;
}
此外,框架提供一些高層次的條目和定製你的目的,outlined here - 您可以設置屏蔽自定義日誌級別,或者設置你自己的未捕獲的異常處理程序。