java 多個異常處理_Java 多個異常共享同一個異常處理器的方法

傳統的異常處理

我們先來看下,傳統的異常處理方式:

// not share exception handler

int[] intArray = new int[3];

try {

for (int i = 0; i <= intArray.length; i++) {

intArray[i] = i;

System.out.println("intArray[" + i + "] = " + intArray[i]);

System.out.println("intArray[" + i + "]模 " + (i - 2) + "的值: " + intArray[i] % (i - 2));

}

} catch (ArrayIndexOutOfBoundsException e) {

// ...省略了大段處理邏輯

System.out.println("異常信息:" + e);

} catch (ArithmeticException e) {

// ...省略了大段處理邏輯

System.out.println("異常信息:" + e);

}

在上面的程序處理中,我們捕獲了可能出現的 ArrayIndexOutOfBoundsException 和 ArithmeticException 的異常。

共享同一個異常處理器

為了改進代碼,我們使用了 Java 7 中共享同一個異常處理器的方式,代碼改成了如下方式:

// share exception handler

intArray = new int[3];

try {

for (int i = 0; i <= intArray.length; i++) {

intArray[i] = i;

System.out.println("intArray[" + i + "] = " + intArray[i]);

System.out.println("intArray[" + i + "]模 " + (i - 2) + "的值: " + intArray[i] % (i - 2));

}

} catch (ArrayIndexOutOfBoundsException | ArithmeticException e) {

// ...省略了大段處理邏輯

System.out.println("異常信息:" + e);

}

System.out.println("程序正常結束。");

在這段程序中,我們看到 ArrayIndexOutOfBoundsException 和 ArithmeticException 異常被放到了同一個異常處理器中進行了處理。這樣整體代碼看起來更加簡潔,并消除了很多的重復代碼。要知道,重復是魔鬼。

源碼

本例子的源碼,可以在 https://github.com/waylau/essential-java中 com.waylau.essentialjava.exception包下找到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532887.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532887.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532887.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java基礎知識點_JAVA基礎知識

1.注釋&#xff0c;關鍵字&#xff0c;標識符1.注釋(1)注釋&#xff1a;解釋說明程序的而文字。(2)注釋的分類&#xff1a;單行注釋 格式&#xff1a; //注釋的文字多行注釋 格式&#xff1a;/*注釋的文字*/文檔注釋 格式&#xff1a;/**注釋的文字*/(3)注釋的作用&#xff1a;…

java棧的應用_Java堆棧應用程序

我有一個Java問題&#xff0c;涉及閱讀一個文本文件&#xff0c;并檢查它是否正確地平衡了花括號&#xff0c;方括號和括號 - {&#xff0c;}&#xff0c;[&#xff0c;]&#xff0c;(和) ”。讀取文件沒有問題&#xff0c;但現在我應該使用名為DelimPos的數據成員來保存行和字…

Linux下導出MySQL為SQL文件_在linux命令下導出導入.sql文件的方法

本文講述了在linux命令下導出導入.sql文件的方法。分享給大家供大家參考&#xff0c;具體如下&#xff1a;一、導出數據庫用mysqldump命令(注意mysql的安裝路徑&#xff0c;即此命令的路徑)&#xff1a;1、導出數據和表結構&#xff1a;mysqldump -u用戶名 -p密碼 數據庫名 >…

python無人機路徑規劃算法_RRT算法在Python中的實現,快速,拓展,隨機,樹

"""《基于智能優化與RRT算法的無人機任務規劃方法研究》博士論文《基于改進人工勢場法的路徑規劃算法研究》碩士論文"""import matplotlib.pyplot as pltimport randomimport mathimport copyshow_animation Trueclass Node(object):"&quo…

uc3842改可調電源教程_明緯開關電源改可調詳細教程

1.拆除啟動電阻&#xff0c;電路板是R12R59R58R9 四個150K的電阻。2.拆除原494供電&#xff0c;去掉J22一根跳線&#xff0c;12V輔助電源正極接J22到494一端&#xff0c;負極接地。3.去掉J15更換為20K電阻&#xff0c;同時拆掉變壓器下面的ZD1過壓保護&#xff0c;輸出可達到50…

duino例程 stm32_stm32duino

{"data":{"id":"8000-000000437045-0","name":"SEO專題頁欄目分發組","type":"1","position":"8000-000000004003-0","status":1,"linkList":[{"id"…

java webservice ip_通過Web Service實現IP地址查詢功能的示例

實例01 實現一個簡單的Web服務訪問本實例將實現IP地址查詢接口服務&#xff0c;根據用戶傳入的IP地址返回IP所在的省、市、地區&#xff0c;實例中將會用到IP地址庫用于查詢信息&#xff0c;由于數據較多&#xff0c;所以讀者可在光盤資源文件中直接附加數據庫文件&#xff0c;…

java默認數組值_數組元素默認的初始值都是什么

在Java中&#xff0c;使用數組時&#xff0c;如果為數組分配了內存空間&#xff0c;但是沒有為數組元素指定初始值&#xff0c;系統會自動為數組元素指定初始值。數組元素的初始值與數組的數據類型有關&#xff0c;對于不同數據類型的數組&#xff0c;其數組元素的初始值是不一…

java 異步通信處理_java異步通信

在Merlin之前,編寫Socket程序是比較繁瑣的工作.因為輸入輸出都必須同步.這樣,對于多客戶端客戶/服務器模式,不得不使用多線程.即為每個連接的客戶都分配一個線程來處理輸入輸出.由此而帶來的問題是可想而知的.程序員不得不為了避免死鎖,線程安全等問題,進行大量的編碼和測試.很…

Java統計做題正確率_ResNet:訓練期間的準確率為100%,但使用相同數據的預測準確率為33%...

我之前遇到過類似的問題&#xff0c;但解決方案非常簡單 . 你需要增加時代數 . 這是1000個紀元后的輸出[[ 9.99999881e-01 8.58182432e-08 9.54004670e-12][ 8.58779623e-20 9.99999881e-01 6.76907632e-08][ 2.12900631e-26 4.09224481e-34 1.00000000e00]]這是培訓日志..Epoc…

java成員初始化順序_Java成員初始化順序

1. 初始化順序在類的內部&#xff0c;變量定義的先后順序決定了初始化的順序。即使變量散布于方法定義之間&#xff0c;他們仍會在任何方法(包括構造器)被調用之前初始化。2. 靜態成員初始化順序1??初始化類的靜態成員或者靜態塊&#xff0c;靜態初始化只在Class對象首次加載…

java五星好評點評器_親,麻煩給個五星好評!—RatingBar

引言上一篇的CheckBox已經讓大家越來越接近實戰演練了&#xff0c;本章我們繼續分享干貨給大家&#xff0c;今天介紹一個實用的UI控件RatingBar(星級評分條)&#xff0c;對于使用過電商APP(某東&#xff0c;某寶等)的小伙伴們來說&#xff0c;應該不會陌生。在對商品進行評價時…

java激光推送ios_關于ios極光推送server端注意的地方

今天試用了極光推送API用它是因為&#xff0c;大多數人說它的文檔是最全的&#xff0c;但是用過之后&#xff0c;發現關于IOS的文檔&#xff0c;還是很不夠&#xff0c;導致走了一點彎路&#xff01;特別是服務端的代碼&#xff1a;https://github.com/jpush/jpush-api-java-cl…

日是這一年的等幾天Java代碼_java中計算指定日期是一年的第幾天的方法

Java輸入日期計算是這年的第幾天&#xff1a;思路通過年份區分出是閏年還是平年&#xff0c;平年 2 月 28 天&#xff0c;閏年 2 月 29 天&#xff1b;1、3、5、7、8、10、12 月份 31 天其余月份均為 30 天&#xff1b;然后將每個月的天數相加即可&#xff0c;注意如果輸入的是…

[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 論文簡析

[2021-CVPR] Fine-grained Angular Contrastive Learning with Coarse Labels 論文簡析 論文地址&#xff1a;https://arxiv.org/abs/2012.03515 代碼地址&#xff1a;https://github.com/guybuk/ANCOR 首先通俗地介紹一下細粒度&#xff08;fine-grained&#xff09;&#…

orcle mysql 查詢_Oracle與Mysql的高級查詢與難點sql

一、連接查詢 1. 內連接 內連接用于返回滿足連接條件的所有記錄。默認情況下&#xff0c;在執行連接查詢時如果沒有指定任何連接操作符&#xff0c;那么這些連接查詢都屬于內連接。 Sql 代碼 1. SELECT a.dname,b.ename from depta,empb where a.deptnob.deptno and a.deptno10…

[2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 論文簡析

[2020-AAAI] Revisiting Image Aesthetic Assessment via Self-Supervised Feature Learning 論文簡析 論文鏈接&#xff1a;https://arxiv.org/abs/1911.11419 本文探索從自監督的角度進行美學評估。基于一個基本的動機&#xff1a;一個好的美學特征表示應該能夠辨別出不同的…

java9 堆外內存_java堆外內存泄漏排查

當考慮Java中的內存泄漏時&#xff0c;我們通常會考慮Java堆泄漏&#xff0c;即在堆中分配的對象沒有被垃圾收集。這是我在處理一臺服務器內存泄漏時的想法&#xff0c;但我即將經歷的遠超出我的想象。癥狀&#xff1a;運行Vertx應用程序(沒有交換分區)的生產服務器被Linux內存…

[2020-CVPR] Dynamic Region-Aware Convolution 論文簡析

[2020-CVPR] Dynamic Region-Aware Convolution 論文簡析 論文地址&#xff1a;https://arxiv.org/abs/2003.12243 參考代碼地址&#xff08;非官方&#xff09;&#xff1a;https://github.com/shallowtoil/DRConv-PyTorch 代碼筆者自己試了一下&#xff0c;應該是可以的&…

java activity模式_Activity的啟動模式

Android系統采用任務棧的方式來管理Activity實例。棧是后進先出的數據結構。通常一個應用程序對應一個任務棧&#xff0c;默認情況下&#xff0c;每啟動一個Activity都會入棧&#xff0c;處于棧頂位置。用戶操作的永遠都是棧頂的Activity。Activity可以層疊擺放&#xff0c;每啟…