JavaScript的 try/catch/throw 语句的用法:
做iOS开发的时候,调试的时候也会用到这些内容,由于之前开发用这些比较少,所以先来重温一下OC的相关语句,大同小异。
try 语句测试代码块的错误。
catch 语句处理错误。
throw 语句创建自定义错误。
在OC中,经常用到下面的代码块来捕捉异常
@try {
// 可能会出现崩溃的代码
}
@catch (NSException *exception) {
// 捕获到的异常exception
}
@finally {
// 结果处理
}
下面有个比较详细的OC调试的过程的代码:
@try {
// 1
[self tryTwo];
}
@catch (NSException *exception) {
// 2
NSLog(@"%s\n%@", __FUNCTION__, exception);
// @throw exception; // 这里不能再抛异常
}
@finally {
// 3
NSLog(@"我一定会执行");
}
// 4
// 这里一定会执行
NSLog(@"try");
- (void)tryTwo {
@try {
// 5
NSString *str = @"abc";
[str substringFromIndex:111]; // 程序到这里会崩
}
@catch (NSException *exception) {
// 6
// @throw exception; // 抛出异常,即由上一级处理
// 7
NSLog(@"%s\n%@", __FUNCTION__, exception);
}
@finally {
// 8
NSLog(@"tryTwo - 我一定会执行");
}
// 9
// 如果抛出异常,那么这段代码则不会执行
NSLog(@"如果这里抛出异常,那么这段代码则不会执行");
}
如果6抛出异常,那么执行顺序为:1->5->6->8->3->4
如果6没抛出异常,那么执行顺序为:1->5->7->8->9->3->4
Objective-C将可能出现异常的代码放在@try块中,所有的异常处理逻辑放在@catch块中,最后用@finally块来回收资源。
@作为OC语言最大的标志之一,所以相对于JavaScript来说的话,以上的三个语句的用法其实和OC基本一致,仅仅只是格式和书写上的差别。
try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}
throw 语句允许创建自定义错误。
语句如下:
throw exception
对于JavaScript的异常可以是:JavaScript 的 字符串、数字、逻辑值或对象。