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...
高洛峰2017-04-21 11:17:57
예외와 오류는 완전히 다른 것입니다. 예외가 발생했지만 이를 포착하지 못하면 충돌이 발생합니다. 그러나 오류가 반환되면 외부 세계에 원하는 모든 작업을 수행할 수 있습니다. 이는 단지 이 호출에 오류가 있음을 알려줄 뿐입니다.