程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 解析java中的error該不應捕捉

解析java中的error該不應捕捉

編輯:關於JAVA

解析java中的error該不應捕捉。本站提示廣大學習愛好者:(解析java中的error該不應捕捉)文章只能為提供參考,不一定能成為您想要的結果。以下是解析java中的error該不應捕捉正文


寫java法式時,平日會被提醒捕捉異常,而又有一些異常是不須要強迫捕捉的,這是一個被說爛了的話題。像我一樣從其他說話轉過去的人確切有點困惑,那我以我的懂得從新說明一遍吧。

  異常的基類是Exception,Exception子類有RuntimeException和其它Exception。這些其它的Exception叫做Checked異常,RuntimeException叫做Unchecked異常。

  只看名字不太好懂得,說的淺顯點,java為了法式可以或許穩固的運轉,就提醒開辟者捕捉已知異常。編譯器曉得一切類型或辦法能夠拋出的異常,在你應用某品種型或辦法時,編譯器就會提醒你捕捉已知的異常。這些編譯器已知的能夠存在的異常就是Checked異常。例如你在封閉文件流時,IOException曾經在close辦法裡寫明能夠拋出,那末編譯器就提醒你必需捕捉異常。而RuntimeException異常在編譯階段是不曉得的,只要運轉階段能力肯定,好比3/0(3除以0)會報ArithmeticException異常。由於這個除數是運轉階段可以變更的,所以不提醒捕捉。這些RuntimeException就是Unchecked異常。

  總之java是盡量的讓法式穩固,曉得的就提醒你,不曉得的就力所不及了。如許說明應當比擬清楚了吧。

  下邊要進入正題了。

  能夠有些同伙在調試法式時碰到過這類情形,法式明明湧現了異常,也catch(Exception e)了,卻沒有捕捉就任何信息。緣由不過有兩個,1.異常地點的線程跟你捕捉的線程不是統一個線程,2.法式拋出的不是Exception而是Error。Error跟Exception一樣都繼續自Throwable,是指不該該被捕捉的嚴重毛病。其時看到這個說明,我居然傻逼到沒想明確為何不應捕捉Error。由於湧現Error的情形會形成法式直接沒法運轉,所以捕捉了也沒有任何意義。那我的成績又來了,假如不捕捉,那法式出成績加入了,連log都看不見,我該怎樣辦?其實這個假定是不成立的,由於假如Error真的存在,你在開辟情況就曾經發明成績了,基本弗成能宣布到正式情況。

  唉,繞了一年夜圈弄了這麼件傻逼事,所以不要再評論辯論Error該不應被捕捉了!

  

自己學問尚淺,寫文目標是為了獲得年夜家指導。倘使文章幫到了您,那真是好極了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved