Objective-c/Cocoa如何抛出异常

Objective-c/Cocoa抛出异常(Exception)的最好方式是什么?

回复:

抛出异常的方式

平常使用[NSException raise:format:],示例如下:

[NSException raise:@"Invalid foo value" format:@"foo of %d is invalid", foo];

或者:

@throw([NSException exceptionWith…])

两者区别就是@throw可以用来抛出不属于NSException类的对象。

捕获异常的方式

@try {
.....
}
@catch{
...
}
@finally{
...
}

注意:

在Objective-C中,与许多类似的语言不同,您通常应该避免在正常操作中可能发生的常见错误情况下使用异常。也就是小错误不要轻易抛出异常

Apple’s conceptual Exception handling documentation重要提示:您应该为编程或意外运行时错误保留异常的使用,比如越界集合访问、尝试修改不可变对象、发送无效消息和丢失到窗口服务器的连接。通常在创建应用程序时(而不是运行时)处理这类错误,但有例外。建议使用错误对象(NSError)和Cocoa错误传递机制来处理Cocoa应用程序中的预期错误,而不是异常。

参考文献

throwing an exception in objective-c/cocoa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值