摘要:知識(shí)點(diǎn)總結(jié)異常知識(shí)點(diǎn)總結(jié)異常為什么需要異常機(jī)制不是所有的問(wèn)題都能在編譯時(shí)被發(fā)現(xiàn),有些問(wèn)題在程序運(yùn)行時(shí)才會(huì)暴露出來(lái)異常機(jī)制是面向?qū)ο蟮奶幚沓绦蛟谶\(yùn)行時(shí)發(fā)生的狀況的手段使用異常機(jī)制不會(huì)打亂原有業(yè)務(wù)邏輯的用塊把可能出異常的代碼保護(hù)起來(lái)用一個(gè)
Java知識(shí)點(diǎn)總結(jié)(JavaIO-異常)
@(Java知識(shí)點(diǎn)總結(jié))[Java, Java異常]
[toc]
為什么需要異常機(jī)制不是所有的問(wèn)題都能在編譯時(shí)被發(fā)現(xiàn),有些問(wèn)題在程序運(yùn)行時(shí)才會(huì)暴露出來(lái)
異常機(jī)制是面向?qū)ο蟮奶幚沓绦蛟谶\(yùn)行時(shí)發(fā)生的狀況的手段 使用異常機(jī)制不會(huì)打亂原有業(yè)務(wù)邏輯的 - 用try塊把可能出異常的代碼保護(hù)起來(lái) - 用一個(gè)或多個(gè)catch塊捕獲發(fā)生的異常Throwable
可以用throw關(guān)鍵字拋出Throwable及其子類對(duì)象
相關(guān)方法getCause()
getMessage()
printStackTrace()
fillInStackTrace()
兩個(gè)子類
Error
AssertionError
VirtualMachineError
StackOverflowError
OutOfMemoryError
AWTError
Exception
運(yùn)行時(shí)異常(非受檢異常) - RuntimeException
受檢異常
異常的使用 聲明異常修飾符 返回類型 方法名(參數(shù)列表) throws 異常1,異常2, ...
聲明的異常通常是受檢查的異常
聲明異常是為了讓方法的調(diào)用者處理異常
聲明異常時(shí)可以"無(wú)病呻吟"
子類重寫的方法不能比父類被重寫的方法聲明更多的異常
捕獲異常
try塊
將可能出現(xiàn)異常的代碼保護(hù)起來(lái)
在Java 7以前try后面必須要有catch塊或者finally塊,不能多帶帶使用
從Java 7開始可以使用TWR語(yǔ)法(try-with-resources)
try (需要自動(dòng)釋放的資源) { ... }
catch塊
* 如果try塊中的代碼發(fā)生了異常那么就由catch塊捕獲異常并執(zhí)行相應(yīng)的處理 * 如果try塊中的代碼沒有發(fā)生異常那么catch塊不會(huì)執(zhí)行 * 一個(gè)try塊后面可以跟上一個(gè)或多個(gè)catch塊用于處理不同類型的異常 * 如果多個(gè)catch塊捕獲的異常有父子關(guān)系那么要將捕獲子類異常的catch塊寫在前面 * 異常的捕獲遵循里氏替換原則 * catch塊中捕獲到的異常對(duì)象可以再次使用throw拋出
finally塊
* 總是執(zhí)行代碼塊,只要JVM沒有關(guān)閉不管程序正常還是異常都會(huì)執(zhí)行 * 最適合釋放打開的外部資源拋出異常(throw異常對(duì)象) 自定義異常
繼承RuntimeException
繼承Exception及其他子類
設(shè)計(jì)和使用原則不用異常機(jī)制處理正常業(yè)務(wù)邏輯
對(duì)可恢復(fù)的情況使用受檢異常,對(duì)編程錯(cuò)誤使用運(yùn)行時(shí)異常
優(yōu)先使用標(biāo)準(zhǔn)的異常類型
拋出異常的方法要有對(duì)應(yīng)的文檔注釋
出現(xiàn)異常的方法要使對(duì)象保持在被調(diào)用之前的狀態(tài)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/69257.html
摘要:知識(shí)點(diǎn)總結(jié)類知識(shí)點(diǎn)總結(jié)類類可以進(jìn)行創(chuàng)建和刪除文件等操作。使用一個(gè)類,則必須向類的構(gòu)造方法中傳遞一個(gè)文件路徑。 Java知識(shí)點(diǎn)總結(jié)(JavaIO-File類) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] File類 File類可以進(jìn)行創(chuàng)建和刪除文件等操作。使用一個(gè)File類,則必須向File類的構(gòu)造方法中傳遞一個(gè)文件路徑。 showImg(https://segme...
摘要:知識(shí)點(diǎn)總結(jié)類知識(shí)點(diǎn)總結(jié)后提供的輸入數(shù)據(jù)類,此類位于包中,不僅可以完成輸入數(shù)據(jù)的操作,還可以方便地對(duì)輸入數(shù)據(jù)進(jìn)行驗(yàn)證。 Java知識(shí)點(diǎn)總結(jié)(JavaIO- Scanner類 ) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] showImg(https://segmentfault.com/img/bV9dAj?w=838&h=396); JDK 1.5后提供的輸入數(shù)據(jù)類,此類位于...
摘要:知識(shí)點(diǎn)總結(jié)合并流類知識(shí)點(diǎn)總結(jié)合并流的主要功能是將兩文件的內(nèi)容合并成一個(gè)文件字節(jié)在多文件的應(yīng)用場(chǎng)景下非常高效,因?yàn)槭菍⒍鄠€(gè)流串聯(lián)起來(lái),形成一個(gè)流,便于操作 Java知識(shí)點(diǎn)總結(jié)(JavaIO- 合并流類 ) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV9a9X?w=853&h=164); 合...
摘要:知識(shí)點(diǎn)總結(jié)類知識(shí)點(diǎn)總結(jié)類用于從緩沖區(qū)中讀取內(nèi)容,所有的輸入字節(jié)數(shù)據(jù)都將放在緩沖區(qū)中中定義的構(gòu)造方法只能接收字符輸入流的實(shí)例,所以必須使用字符輸入流和字節(jié)輸入流的轉(zhuǎn)換類將字節(jié)輸入流轉(zhuǎn)變?yōu)樽址鳌? Java知識(shí)點(diǎn)總結(jié)(JavaIO- BufferedReader類) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault....
摘要:知識(shí)點(diǎn)總結(jié)轉(zhuǎn)換流知識(shí)點(diǎn)總結(jié)是的子類,將一個(gè)字符流的輸出對(duì)象變?yōu)樽止?jié)流的輸出對(duì)象。將字節(jié)輸出流轉(zhuǎn)為字符輸出流字節(jié)流轉(zhuǎn)為字符流蘋果將字節(jié)輸入流轉(zhuǎn)為字符輸入流內(nèi)容是 Java知識(shí)點(diǎn)總結(jié)(JavaIO-轉(zhuǎn)換流) @(Java知識(shí)點(diǎn)總結(jié))[Java, JavaIO] [toc] showImg(https://segmentfault.com/img/bV82dQ?w=849&h=226); O...
閱讀 3478·2021-09-08 10:46
閱讀 1189·2019-08-30 13:17
閱讀 2369·2019-08-30 13:05
閱讀 1211·2019-08-29 15:29
閱讀 2889·2019-08-29 11:31
閱讀 542·2019-08-26 12:13
閱讀 1537·2019-08-26 11:42
閱讀 1845·2019-08-23 18:37