开发中我们经常会遇到崩溃,控制台输出的日志信息就是NSException产生的,一旦程序抛出异常,程序就会崩溃,控制台就会有这些崩溃日志。
一、制造崩溃
//01、初始化一个异常对象
NSException *exception=[NSException exceptionWithName:@"这是异常的名字" reason:@"这是异常的原因" userInfo:nil];
//02、抛出异常
@throw exception;
NSString *reason=@"喝多了";
[NSException raise:@"我的错" format:@"%@耍起了醉拳",reason];
//异常的名称
NSString *exceptionName = @"自定义异常";
//异常的原因
NSString *exceptionReason = @"我长得太帅了,所以程序崩溃了";
//异常的信息
NSDictionary *exceptionUserInfo = nil;
NSException *exception = [NSException exceptionWithName:exceptionName reason:exceptionReason userInfo:exceptionUserInfo];
NSString *aboutMe = @"太帅了";
if ([aboutMe isEqualToString:@"太帅了"]) {
//抛异常
@throw exception;
}
参考链接:http://www.jianshu.com/p/05aad21e319e
二、捕获异常
NSString *nilStr = nil;
NSMutableArray *arrayM = [NSMutableArray array];
@try {
//如果@try中的代码会导致程序崩溃,就会来到@catch
//将一个nil插入到可变数组中,这行代码肯定有问题
[arrayM addObject:nilStr];
}
@catch (NSException *exception) {
//如果@try中的代码有问题(导致崩溃),就会来到@catch
//在这里你可以进行相应的处理操作
//如果你要抛出异常(让程序崩溃),就写上 @throw exception
}
@finally {
//@finally中的代码是一定会执行的
//你可以在这里进行一些相应的操作
}
网友评论