當前位置:編程學習大全網 - 熱門推薦 - 為什麽不建議用 try catch

為什麽不建議用 try catch

不同語言處理Try Catch的機制不壹樣,所以也會有不同回答。

比如C++,是不推薦用try catch的,它推薦使用Windows API那種HResult來返回錯誤情況,原因是try catch會在已有的代碼上面增加額外的cost, 這個額外的cost不是說只有throw exception的時候才會有,而是在try catch block裏面的每壹行代碼中都會有,這也是為什麽他不建議妳使用try catch最主要的原因。在Windows的源代碼中,是沒有任何try catch的,全部用HResult來處理。

比如C#, try catch是建議使用的,C#設計的時候吸取的C++ try catch的教訓,所以直接用Try catch包裹已有代碼增加的cost可以忽略不計,但是如果真的在代碼運行過程中throw exception了,這個cost還是很大的。所以,在C#代碼設計中,throw exception基本上是妳認為不會發生這種意外的情況下,否則,如果是常見錯誤,最好不要throw exception。

比如Java, try catch也是建議使用的,我這個用的不熟,不過看它的說明,即使是throw exception的時候的cost也很小。

總結說來,try catch是否建議使用要看具體語言,最重要衡量的標準就是它對已有的代碼性能有多大的影響。但是從它設計的角度就是為了處理壹些意料不到的情況,但是因為當初引入的時候各種各樣的原因,導致有些語言為了性能,不推薦使用。

BTW, try catch最好不要catch (Exception), 這樣會吃掉不該吃的問題,比如C#中的StackOverflowException, OutOfMemoryException, NullReferenceException etc. 該crash的時候就應該讓App crash, restart, 這也是保護妳service的壹個好方法。

希望對妳有幫助~

  • 上一篇:最近的BL動畫有哪些
  • 下一篇:盟軍敢死隊3中文版修改器
  • copyright 2024編程學習大全網