问题描述
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...
问题解答
回答1:异常和错误是完全不同的两个东西。如果抛出个异常但是你没捕获,那就会crash,但是如果是返回个错误,对外部来说可以随意怎么办,只是告诉你这个调用有错误。