最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析java中的error該不該捕獲

 更新時間:2014年02月13日 15:30:03   投稿:shangke  
這篇文章主要介紹了java中的error該不該捕獲,需要的朋友可以參考下

寫java程序時,通常會被提示捕獲異常,而又有一些異常是不需要強(qiáng)制捕獲的,這是一個被說爛了的話題。像我一樣從其他語言轉(zhuǎn)過來的人確實有點迷惑,那我以我的理解重新解釋一遍吧。

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

  只看名字不太好理解,說的通俗點,java為了程序能夠穩(wěn)定的運行,就提示開發(fā)者捕獲已知異常。編譯器知道所有類型或方法可能拋出的異常,在你使用某種類型或方法時,編譯器就會提示你捕獲已知的異常。這些編譯器已知的可能存在的異常就是Checked異常。例如你在關(guān)閉文件流時,IOException已經(jīng)在close方法里寫明可能拋出,那么編譯器就提示你必須捕獲異常。而RuntimeException異常在編譯階段是不知道的,只有運行階段才能確定,比如3/0(3除以0)會報ArithmeticException異常。因為這個除數(shù)是運行階段可以變化的,所以不提示捕獲。這些RuntimeException就是Unchecked異常。

  總之java是盡可能的讓程序穩(wěn)定,知道的就提示你,不知道的就無能為力了。這樣解釋應(yīng)該比較清晰了吧。

  下邊要進(jìn)入正題了。

  可能有些朋友在調(diào)試程序時遇到過這種情況,程序明明出現(xiàn)了異常,也catch(Exception e)了,卻沒有捕獲到任何信息。原因無非有兩個,1.異常所在的線程跟你捕獲的線程不是同一個線程,2.程序拋出的不是Exception而是Error。Error跟Exception一樣都繼承自Throwable,是指不應(yīng)該被捕獲的嚴(yán)重錯誤。當(dāng)時看到這個解釋,我竟然沒想明白為什么不該捕獲Error。因為出現(xiàn)Error的情況會造成程序直接無法運行,所以捕獲了也沒有任何意義。那我的問題又來了,如果不捕獲,那程序出問題退出了,連log都看不見,我該怎么辦?其實這個假設(shè)是不成立的,因為如果Error真的存在,你在開發(fā)環(huán)境就已經(jīng)發(fā)現(xiàn)問題了,根本不可能發(fā)布到正式環(huán)境。  

本人學(xué)識尚淺,寫文目的是為了得到大家指點。倘若文章幫到了您,那真是好極了。

相關(guān)文章

最新評論

长治县| 石景山区| 沭阳县| 七台河市| 阿拉善左旗| 从江县| 定安县| 黔江区| 郁南县| 荆州市| 临沧市| 静安区| 乐陵市| 南部县| 锡林浩特市| 图片| 名山县| 永春县| 鲁甸县| 广灵县| 得荣县| 环江| 师宗县| 宁国市| 泰顺县| 淄博市| 通州市| 和顺县| 和静县| 新化县| 铜山县| 大名县| 新津县| 灵宝市| 汉沽区| 牟定县| 洛浦县| 四子王旗| 永和县| 南汇区| 潞城市|