我們要知道,使用Java內(nèi)置的異常類可以描述在編程時(shí)的大部分異常,除此之外,我們?cè)诰幊虝r(shí)還可以擴(kuò)展Exception類定義自己的異常類,然后根據(jù)程序的需要來規(guī)定哪些方法產(chǎn)生這樣的異常。
自定義異常類的格式:
public class 異常類名 extends Exception { 無參構(gòu)造 帶參構(gòu)造 }
例如:
public class DotcppException extends Exception { //無參構(gòu)造 public DotcppException() { } //帶參構(gòu)造 public DotcppException(String message) { //異常錯(cuò)誤消息 super(message); } }
一個(gè)方法在聲明時(shí)可以使用throws關(guān)鍵字聲明要產(chǎn)生的若干個(gè)異常,并在該方法的方法體中具體給出產(chǎn)生異常的操作,即用相應(yīng)的異常類創(chuàng)建對(duì)象,并使用throw關(guān)鍵字拋出該異常對(duì)象,導(dǎo)致該方法結(jié)束執(zhí)行。程序必須在try-catch塊語句中調(diào)用可能發(fā)生異常的方法,其中catch的作用就是捕獲throw關(guān)鍵字拋出的異常對(duì)象。
注意:throw是Java的關(guān)鍵字,該關(guān)鍵字的作用就是拋出異常,throw和throws是兩個(gè)不同的關(guān)鍵字。
總結(jié):
(1)處理運(yùn)行時(shí)異常的時(shí)候,采用邏輯去規(guī)避的同時(shí)輔助try-catch去處理;
(2)在多重catch塊的后面,可以加個(gè)catch(Exception)來處理可能遺漏的異常;
(3)對(duì)于不確定的代碼,也可以用try-catch處理潛在的異常;
(4)盡量去處理異常,切記只是簡單地調(diào)用printStackTrace()去輸出打??;
(5)具體如何去處理異常,要根據(jù)不同的業(yè)務(wù)需求和異常的類型去處理;
(6)盡量添加finally語句去釋放占用的資源。
C語言網(wǎng)提供由在職研發(fā)工程師或ACM藍(lán)橋杯競賽優(yōu)秀選手錄制的視頻教程,并配有習(xí)題和答疑,點(diǎn)擊了解:
一點(diǎn)編程也不會(huì)寫的:零基礎(chǔ)C語言學(xué)練課程
解決困擾你多年的C語言疑難雜癥特性的C語言進(jìn)階課程
從零到寫出一個(gè)爬蟲的Python編程課程
只會(huì)語法寫不出代碼?手把手帶你寫100個(gè)編程真題的編程百練課程
信息學(xué)奧賽或C++選手的 必學(xué)C++課程
藍(lán)橋杯ACM、信息學(xué)奧賽的必學(xué)課程:算法競賽課入門課程
手把手講解近五年真題的藍(lán)橋杯輔導(dǎo)課程