try catch

經過度娘來看,都是不推薦在代碼中使用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呢。指針

相關文章
相關標籤/搜索