标签:
很多语言将所有非预期(unexpected)错误作为异常抛出,但是Objective-C的异常只用来处理程序错误。当异常抛出时,详细信息都封装在NSException对象中。这些信息主要用来帮助程序员调试代码,例如“试图在只有两个对象的数组中访问第七个对象。”NSException中还包括方法调用栈信息,指明了抛出异常的代码位置。
NSException和NSError的使用场景不同。如果需要指出程序员的编码错误,则应该使用NSException。例如,一个方法只能接受奇数作为参数,但是程序员在调用该方法时传入了偶数,这时应该抛出异常,以方便程序员解决代码错误。相反,对于预期(expected)错误,如用户错误和设备环境错误,应该使用NSError。例如,一个方法需要读取用户照片,但是没有访问用户相册的权限,这时应该向方法调用者返回一个NSError对象,指出不能执行本次操作的原因。
标签:
原文地址:http://www.cnblogs.com/limaofuyuanzhang/p/4700272.html