try catch

Posted 秋棠枫眠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了try catch相关的知识,希望对你有一定的参考价值。

通过度娘来看,都是不推荐在代码中使用try catch的,既然苹果给我们提供了try catch,为什么大家都不推荐用呢?原因如下:

1、因为try catch无法捕获UncaughtException,而OC中大部分crash如:内存溢出、野指针等都是无法捕获的,而能捕获的只是像数组越界之类(这真心需要catch么?注:完全可以通过代码判断避免),所以try catch对于OC来说,比较鸡肋。

2、简单的来说,Apple虽然同时提供了错误处理(NSError)和异常处理(exception)两种机制,但是Apple更加提倡开发者使用NSError来处理程序运行中可恢复的错误。而异常被推荐用来处理不可恢复的错误。    原因有几个,在非gc情况下,exception容易造成内存管理问题(文档有描述即使是arc下,也不是安全的);exception使用block造成额外的开销,效率较低等等,另外这也的确是Cocoa开发者的习惯。

3、很多人在编程中,错误了使用了Try-Catch,把异常处理机制用在了核心逻辑中。把其当成了一个变种的GOTO使用。把大量的逻辑写在了Catch中。弱弱的说一句,这种情况干嘛不用ifelse呢。

以上是关于try catch的主要内容,如果未能解决你的问题,请参考以下文章

try语句可以套try语句?

swift try try? try!

将谷歌表格中的特定范围插入到 MYSQL

iOS 异常处理 及 try/try!/try?区别 及理解

Try::Tiny:try-catch 的奇怪行为与否?

JSP代码 我不知道怎么放入try和catch