您好,登錄后才能下訂單哦!
這篇文章主要介紹“Java異常怎么自定義”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java異常怎么自定義”文章能幫助大家解決問題。
//返回此可拋出對象的詳細信息消息字符串 public String getMessage() //將此可拋發對象及其回溯到標準錯誤流。此方法在錯誤輸出流上打印此 Throwable 對象的堆棧跟蹤 //最為詳細 public void printStackTrace() //返回此可拋件的簡短說明 public String toString()
對于1/0這個異常
try{ int i = 1/0; } catch(Exception e){ System.out.println("e = " + e); System.out.println("-----------------"); System.out.println("e.getMessage() = " + e.getMessage()); System.out.println("-----------------"); System.out.println("e.getStackTrace() = " + Arrays.toString(e.getStackTrace())); System.out.println("-----------------"); System.out.println("e.getLocalizedMessage() = " + e.getLocalizedMessage()); System.out.println("-----------------"); System.out.println("e.getCause() = " + e.getCause()); System.out.println("-----------------"); System.out.println("e.getClass() = " + e.getClass()); System.out.println("-----------------"); System.out.println("e.getSuppressed() = " + Arrays.toString(e.getSuppressed())); }
e = java.lang.ArithmeticException: / by zero ----------------- e.getMessage() = / by zero ----------------- e.getStackTrace() = [省略27行,com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)] ----------------- //可能的原因 e.getCause() = null ----------------- //一個數組,其中包含為傳遞此異常而禁止顯示的所有異常。 //就是用try捕獲卻不做事的 e.getSuppressed() = []
讓控制臺的報錯信息更加的見名知意
1.定義異常類,寫繼承關系。
名字要見名知義,繼承于異常類。
像運行時可以繼承RuntimeException
在開發過程中一般會有多種異常類,小的會繼承自定義的大的。
2.寫構造方法
需要書寫空參和帶參的構造。
可以調用父類的也可以自定義
簡化釋放資源的步驟
自動釋放的類需要實現autocloseable的接口
這樣在特定情況下會自動釋放,還有的就是stream流中提到過。
try(創建對象資源1;創建對象資源2){ }catch(){ }
例如這樣的代碼可以改寫成
BufferedInputStream b = null; try { b = new BufferedInputStream(new FileInputStream("")); }catch (Exception e) { e.printStackTrace(); }finally { if (b!=null) { try { b.close(); } catch (IOException e) { throw new RuntimeException(e); } } }
try (BufferedInputStream b = new BufferedInputStream(new FileInputStream(""));){ }catch (Exception e) { e.printStackTrace(); }
創建對象1 創建對象2 try(變量名1;變量名2){ }catch(){ }
上面的代碼可以改寫成,
不過需要注意的是創建對象也需要異常處理,我們這里選擇拋出
public void testTryWithResource() throws FileNotFoundException { BufferedInputStream b = new BufferedInputStream(new FileInputStream("")); try (b) { } catch (Exception e) { e.printStackTrace(); } }
關于“Java異常怎么自定義”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。