Java基礎(chǔ)-Java中的異常有哪幾類缩挑?分別怎么使用?

從根本上講所有的異常都屬于Throwable的子類鬓梅,從大的方面講分為Error(錯(cuò)誤)和Exception(異常)。Eror是程序無(wú)法處理的異常谨湘,當(dāng)發(fā)生Error時(shí)程序線程會(huì)終止運(yùn)行绽快。我們一般意義上講的異常就是指的Exception,這也是面試官常問的問題紧阔。

下面就簡(jiǎn)單說(shuō)一下關(guān)于Exception(以下都簡(jiǎn)稱異常)的一點(diǎn)理解坊罢。

異常分為運(yùn)行時(shí)異常(RuntimeException,又叫非檢查時(shí)異常)和非運(yùn)行時(shí)異常(又叫檢查異常)擅耽。下面列舉一下常見的運(yùn)行時(shí)異常:

NullPointerException - 試圖訪問一空對(duì)象的變量活孩、方法或空數(shù)組的元素

ArrayIndexOutOfBoundsException - 數(shù)組越界訪問

NoClassDefFoundException - JAVA運(yùn)行時(shí)系統(tǒng)找不到所引用的類

ArithmeticException - 算術(shù)運(yùn)算中,被0除或模除

ArrayStoreException - 數(shù)據(jù)存儲(chǔ)異常乖仇,寫數(shù)組操作時(shí)憾儒,對(duì)象或數(shù)據(jù)類型不兼容

ClassCastException - 類型轉(zhuǎn)換異常

IllegalArgumentException - 方法的參數(shù)無(wú)效

IllegalThreadStateException - 試圖非法改變線程狀態(tài)询兴,比方說(shuō)試圖啟動(dòng)一已經(jīng)運(yùn)行的線程

NumberFormatException - 數(shù)據(jù)格式異常,試圖把一字符串非法轉(zhuǎn)換成數(shù)值(或相反)

SecurityException - 如果Applet試圖執(zhí)行一被WWW瀏覽器安全設(shè)置所禁止的操作

IncompatibleClassChangeException - 如改變了某一類定義起趾,卻沒有重新編譯其他引用了這個(gè)類的對(duì)象诗舰。如某一成員變量的聲明被從靜態(tài)改變?yōu)榉庆o態(tài),但其他引用了這個(gè)變量的類卻沒有重新編譯训裆,或者相反眶根。如刪除了類聲明中的某一域或方法,但沒有重新編譯那些引用了這個(gè)域或方法的類

OutOfMemoryException - 內(nèi)存不足边琉,通常發(fā)生于創(chuàng)建對(duì)象之時(shí)

IncompatibleTypeException - 試圖實(shí)例化一個(gè)接口属百,Java運(yùn)行時(shí)系統(tǒng)將拋出這個(gè)異常

UnsatisfiedLinkException - 如果所需調(diào)用的方法是C函數(shù),但Java運(yùn)行時(shí)系統(tǒng)卻無(wú)法連接這個(gè)函數(shù)

InternalException - 系統(tǒng)內(nèi)部故障所導(dǎo)致的異常情況变姨,可能是因?yàn)镴ava運(yùn)行時(shí)系統(tǒng)本身的原因族扰。如果發(fā)現(xiàn)一可重現(xiàn)的InternalException,可以直接給Sun公司發(fā)電郵java@java.Sun.com

前三種異常是我在開發(fā)中經(jīng)常性遇到的問題钳恕,對(duì)于運(yùn)行時(shí)異常通過(guò)它的別名(非檢查是異常)我們可以知道這些異常不是我們寫代碼的時(shí)候可以檢查到的别伏,而是程序在運(yùn)行的時(shí)候可能會(huì)發(fā)生的,也就是說(shuō)這是在業(yè)務(wù)邏輯上可能會(huì)出現(xiàn)的問題忧额。對(duì)于這類異常就需要我們?cè)陂_發(fā)的時(shí)候盡量的把業(yè)務(wù)邏輯可能會(huì)出現(xiàn)的問題考慮清楚厘肮,進(jìn)行異常捕捉。

常用的方法包括:try{}catch(Exception e){}finally{}和throws兩種辦法睦番。try{}catch(Exception e){}finally{}是在方法中對(duì)異常進(jìn)行捕獲类茂,catch可以寫多個(gè),Java運(yùn)行時(shí)系統(tǒng)從上到下分別對(duì)每個(gè)catch語(yǔ)句處理的例外類型進(jìn)行檢測(cè)托嚣,直到找到類型相匹配的catch語(yǔ)句為止巩检。(具體的就不過(guò)多贅述)throws是出現(xiàn)在方法頭部,個(gè)人理解算是在最外層拋出異常示启。關(guān)于對(duì)運(yùn)行時(shí)異常的處理兢哭,詳情可以看這篇文章http://blog.csdn.net/zhuangzhineng/article/details/4000821,里面講的格外詳細(xì)夫嗓,這里就不過(guò)多贅述迟螺。

非運(yùn)行時(shí)異常中我們常遇到的可能有IOException、SQLException等舍咖,這類異常就是我們編寫的代碼矩父、sql語(yǔ)句的問題了,這就需要我們回到代碼中仔細(xì)檢查了排霉。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末窍株,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌球订,老刑警劉巖后裸,帶你破解...
    沈念sama閱讀 219,427評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異辙售,居然都是意外死亡轻抱,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門旦部,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)祈搜,“玉大人,你說(shuō)我怎么就攤上這事士八∪菅啵” “怎么了?”我有些...
    開封第一講書人閱讀 165,747評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵婚度,是天一觀的道長(zhǎng)蘸秘。 經(jīng)常有香客問我,道長(zhǎng)蝗茁,這世上最難降的妖魔是什么醋虏? 我笑而不...
    開封第一講書人閱讀 58,939評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮哮翘,結(jié)果婚禮上颈嚼,老公的妹妹穿的比我還像新娘。我一直安慰自己饭寺,他們只是感情好阻课,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,955評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著艰匙,像睡著了一般限煞。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上员凝,一...
    開封第一講書人閱讀 51,737評(píng)論 1 305
  • 那天署驻,我揣著相機(jī)與錄音,去河邊找鬼健霹。 笑死旺上,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的骤公。 我是一名探鬼主播,決...
    沈念sama閱讀 40,448評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼扬跋,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼阶捆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤洒试,失蹤者是張志新(化名)和其女友劉穎倍奢,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垒棋,經(jīng)...
    沈念sama閱讀 45,834評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡卒煞,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,992評(píng)論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了叼架。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片畔裕。...
    茶點(diǎn)故事閱讀 40,133評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖乖订,靈堂內(nèi)的尸體忽然破棺而出扮饶,到底是詐尸還是另有隱情,我是刑警寧澤乍构,帶...
    沈念sama閱讀 35,815評(píng)論 5 346
  • 正文 年R本政府宣布甜无,位于F島的核電站,受9級(jí)特大地震影響哥遮,放射性物質(zhì)發(fā)生泄漏岂丘。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,477評(píng)論 3 331
  • 文/蒙蒙 一眠饮、第九天 我趴在偏房一處隱蔽的房頂上張望奥帘。 院中可真熱鬧,春花似錦君仆、人聲如沸翩概。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)钥庇。三九已至,卻和暖如春咖摹,著一層夾襖步出監(jiān)牢的瞬間评姨,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工萤晴, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留吐句,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,398評(píng)論 3 373
  • 正文 我出身青樓店读,卻偏偏與公主長(zhǎng)得像嗦枢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子屯断,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,077評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 一文虏、異常 簡(jiǎn)介:1.程序運(yùn)行時(shí)侣诺,發(fā)生的不被期望的事件,它阻止了程序按照程序員的預(yù)期正常執(zhí)行氧秘,這就是異常年鸳。異常處理機(jī)...
    危君子頻道閱讀 454評(píng)論 3 10
  • 1.JAVA反射 1)反射機(jī)制概念:在運(yùn)行狀態(tài)中灭忠,對(duì)于任何一個(gè)類都能夠知道這個(gè)類所有屬性和方法膳算,并且對(duì)于任意一個(gè)對(duì)...
    YQT_T閱讀 392評(píng)論 0 1
  • 什么是異常 異常是指阻止當(dāng)前方法或者作用域繼續(xù)執(zhí)行的問題。異常對(duì)象(包括Exception和Error)都是Thr...
    朽木丿碎風(fēng)閱讀 370評(píng)論 0 1
  • @[toc] 異常 在程序設(shè)計(jì)和運(yùn)行的過(guò)程中宇葱,發(fā)生錯(cuò)誤是不可避免的。盡管 Java 語(yǔ)言的設(shè)計(jì)從根本上提供了便于寫...
    夜雨流云閱讀 237評(píng)論 0 0
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者刊头,不喜歡去冒險(xiǎn)黍瞧,但是人生放棄了冒險(xiǎn),也就放棄了無(wú)數(shù)的可能原杂。 ...
    yichen大刀閱讀 6,054評(píng)論 0 4