十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
這篇文章將為大家詳細講解有關Java 7異常新特性mutilcatch是怎么樣的,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設計、成都網(wǎng)站設計、網(wǎng)站建設、電子商務、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務。公司擁有豐富的網(wǎng)站建設和互聯(lián)網(wǎng)應用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團隊及專業(yè)的網(wǎng)站設計師團隊。
Java7增強了Java的異常處理機制,主要表現(xiàn)為三個方面:捕捉多種異常類型(multicatch);重新拋出(rethrow)異常;簡化資源清理(try-with-resources)
捕捉多種異常類型
從Java7開始,你就可以在一個catch塊中捕捉多種類型的異常了。增加multicatch的特性的主要是為了降低重復代碼和較少過大范圍的異常捕捉(例如這樣的捕捉 catch(Exception e))。
假如你正開發(fā)這樣一個應用程序,這個程序可以靈活地將數(shù)據(jù)復制到數(shù)據(jù)庫或者文件中,清單1(CopyToDatabaseOrFile.java)模擬了這種程序, 展示了在catch模塊中存在重復代碼的現(xiàn)象:
Java代碼
// CopyToDatabaseOrFile.java import java.io.IOException; import java.sql.SQLException; public class CopyToDatabaseOrFile { public static void main(String[] args) { try { copy(); } catch (IOException ex) { System.out.println(ex.getMessage()); // additional handler code } catch (SQLException ex) { System.out.println(ex.getMessage()); // additional handler code that's identical to the previous handler's // code } } static void copy() throws IOException, SQLException { if (Math.random() < 0.5) throw new IOException("cannot copy to file"); else throw new SQLException("cannot copy to database"); } }
清單1: CopyToDatabaseOrFile.java
Java7克服了這種代碼重復的問題。你只需在一個catch塊中指定多個需要處理的異常,將這些異常按順序排列,并用“|”分隔每個異常。如:
Java代碼
try{ copy(); }catch (IOException | SQLException ex){ System.out.println(ex.getMessage()); }
現(xiàn)在,當copy()方法拋出任何一種類型,都會在catch塊中被捕捉。
當在catch中聲明多種異常時,被聲明的異常默認為final的,也就是說不能再修改異常的引用。如上例中,不能再將ex賦值給另外一個異常(如ex=new MyException())。
關于Java 7異常新特性mutilcatch是怎么樣的就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。