欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解析java中的error該不該捕獲

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

寫java程序時,通常會被提示捕獲異常,而又有一些異常是不需要強制捕獲的,這是一個被說爛了的話題。像我一樣從其他語言轉(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)該比較清晰了吧。

  下邊要進入正題了。

  可能有些朋友在調(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)境?! ?/p>

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

相關(guān)文章

  • Java如何設(shè)置過期時間的map的幾種方法

    Java如何設(shè)置過期時間的map的幾種方法

    本文主要介紹了Java如何設(shè)置過期時間的map的幾種方法,常見的解決方法有:ExpiringMap、LoadingCache及基于HashMap的封裝三種,下面就詳細(xì)的介紹一下,感興趣的可以了解下
    2022-03-03
  • SpringBoot整合Quartz實現(xiàn)定時任務(wù)詳解

    SpringBoot整合Quartz實現(xiàn)定時任務(wù)詳解

    這篇文章主要介紹了Java?任務(wù)調(diào)度框架?Quartz,Quartz是OpenSymphony開源組織在Job?scheduling領(lǐng)域又一個開源項目,完全由Java開發(fā),可以用來執(zhí)行定時任務(wù),類似于java.util.Timer。,下面我們來學(xué)習(xí)一下關(guān)于?Quartz更多的詳細(xì)內(nèi)容,需要的朋友可以參考一下
    2022-08-08
  • java多線程和并發(fā)包入門示例

    java多線程和并發(fā)包入門示例

    這篇文章主要寫了java多線程的使用方法和java并發(fā)包簡單入門的示例,大家可以參考使用
    2013-11-11
  • 使用springmvc配置視圖解析器和重定向方式

    使用springmvc配置視圖解析器和重定向方式

    這篇文章主要介紹了使用springmvc配置視圖解析器和重定向方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • springboot如何添加task任務(wù)執(zhí)行隊列

    springboot如何添加task任務(wù)執(zhí)行隊列

    這篇文章主要介紹了springboot如何添加task任務(wù)執(zhí)行隊列問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • SpringBoot自動配置原理分析

    SpringBoot自動配置原理分析

    這篇文章主要介紹了SpringBoot自動配置原理分析,SpringBoot是我們經(jīng)常使用的框架,那么你能不能針對SpringBoot實現(xiàn)自動配置做一個詳細(xì)的介紹。如果可以的話,能不能畫一下實現(xiàn)自動配置的流程圖。牽扯到哪些關(guān)鍵類,以及哪些關(guān)鍵點
    2022-08-08
  • Java實現(xiàn)鎖定某個變量的幾種方式示例詳解

    Java實現(xiàn)鎖定某個變量的幾種方式示例詳解

    這篇文章主要為大家介紹了Java實現(xiàn)鎖某個變量的幾種方式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-09-09
  • Java中URL的處理方法詳解

    Java中URL的處理方法詳解

    URL(Uniform?Resource?Locator)中文名為統(tǒng)一資源定位符,有時也被俗稱為網(wǎng)頁地址,表示為互聯(lián)網(wǎng)上的資源,本文主要為大家介紹了Java是如何處理URL的,感興趣的可以了解一下
    2023-05-05
  • SpringBoot + minio實現(xiàn)分片上傳、秒傳、續(xù)傳功能

    SpringBoot + minio實現(xiàn)分片上傳、秒傳、續(xù)傳功能

    MinIO是一個基于Go實現(xiàn)的高性能、兼容S3協(xié)議的對象存儲,使用MinIO構(gòu)建用于機器學(xué)習(xí),分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載的高性能基礎(chǔ)架構(gòu),這篇文章主要介紹了SpringBoot + minio實現(xiàn)分片上傳、秒傳、續(xù)傳,需要的朋友可以參考下
    2023-06-06
  • 老生常談java垃圾回收算法(必看篇)

    老生常談java垃圾回收算法(必看篇)

    下面小編就為大家?guī)硪黄仙U刯ava垃圾回收算法(必看篇)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論