NSException与NSError在使用中有哪些区别?
#import <Foundation/Foundation.h> int main (int argc, const char * argv[]) { @autoreleasepool { NSException* ex = [[NSException alloc]initWithName:@"MyException" reason:@"b==0" userInfo:nil]; @try { int b = 0; switch (b) { case 0: @throw(ex);//b=0,则抛出异常; break; default: break; } } @catch (NSException *exception)//捕获抛出的异常 { NSLog(@"exception.name= %@" ,exception.name); NSLog(@"exception.reason= %@" ,exception.reason); NSLog(@"b==0 Exception!"); } @finally { NSLog(@"finally!"); } [ex release]; } return 0; }
https://developer.apple.com/library/m...
https://developer.apple.com/library/m...
異常和錯誤是完全不同的兩個東西。如果拋出個異常但是你沒捕獲,那就會crash,但是如果是回傳個錯誤,對外部來說可以隨意怎麼辦,只是告訴你這個呼叫有錯誤。