经过度娘来看,都是不推荐在代码中使用try catch的,既然苹果给咱们提供了try catch,为何你们都不推荐用呢?缘由以下:编程
一、由于try catch没法捕获UncaughtException,而OC中大部分crash如:内存溢出、野指针等都是没法捕获的,而能捕获的只是像数组越界之类(这真心须要catch么?注:彻底能够经过代码判断避免),因此try catch对于OC来讲,比较鸡肋。数组
二、简单的来讲,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,可是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误。而异常被推荐用来处理不可恢复的错误。 缘由有几个,在非gc状况下,exception容易形成内存管理问题(文档有描述即便是arc下,也不是安全的);exception使用block形成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。安全
三、不少人在编程中,错误了使用了Try-Catch,把异常处理机制用在了核心逻辑中。把其当成了一个变种的GOTO使用。把大量的逻辑写在了Catch中。弱弱的说一句,这种状况干吗不用ifelse呢。指针