有时候我们项目需求,需要人为的抛出异常,使程序崩溃退出,这时候就用到@throw了。
NSString *bundleId = [[NSBundle mainBundle] bundleIdentifier];
NSString *format = @"Configure APIKey inside SDKDemoAPIKey.h for your "
@"bundle `%@`, see README.GoogleMapsDemos for more information";
@throw [NSException exceptionWithName:@"DemoAppDelegate" reason:[NSStringstringWithFormat:format, bundleId] userInfo:nil];
Object-C语言的异常处理符号和C++、JAVA相似。再加上使用NSException,NSError或者自定义的类,你可以在你的应用程序里添加强大的错误处理机制。异常处理机制是由这个四个关键字支持的:@try,@catch,@thorw,@finally。当代码有可能出现异常时,我们把他放到@try语句块中。@catch()块包含了处理@try块里的抛出的异常的逻辑。无论异常是否发生,@finally块里面的语句都会执行。如果直接使用@throw块来抛出异常,这个异常本质上是一个OC的对象。咱们可以使用NSException对象,但是不局限于他们。
voidUncaughtExceptionHandler(NSException*exception);
NSArray *arr = [exception callStackSymbols];//得到当前调用栈信息
NSString*reason = [exceptionreason];//非常重要,就是崩溃的原因
NSString*name = [exceptionname];//异常类型
网友评论