有一些时候,我们自己需要处理各种各样的情况,而对一些错误的情况处理要抛出异常。
应用情景:在自己 封装业务类 或者 自定义控件 时,会提供一些方法,方法可能会有一些传入参数。如果别人错误的使用了你定义的业务类,传入了错误的参数,那么需要告诉他“错误”。所以说就用到了抛出异常。
// 抛出异常方式一
NSException *excp = [NSException exceptionWithName:@"filePathError" reason:@"笨蛋你的路径传错了!" userInfo:nil];
[excp raise]; // 抛出异常
// 抛出异常方式二
@throw [NSException exceptionWithName:@"filePathError" reason:@"笨蛋你的路径传错了!" userInfo:nil];
如果判断结果不满足条件,抛出异常,整个程序会崩掉,我们来看一下异常信息:
2016-08-03 16:10:44.286 WZYBaiSi[27049:1250261] *** Terminating app due to uncaught exception 'filePathError', reason: '笨蛋你的路径传错了!'
*** First throw call stack:
(
0 CoreFoundation 0x0000000103bb7d85 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x00000001032a2deb objc_exception_throw + 48
2 WZYBaiSi 0x0000000101c8e4e9 +[WZYFileManager removeDirectoryPathData:] + 201
...
...
... 以下错误信息忽略