日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
初探Java7異常處理功能增強(qiáng)

【譯文】之前我們介紹過(guò)Java 7的***特性更新和代碼示例,今天我們來(lái)看看Java 7異常處理方面的功能增強(qiáng)。來(lái)自Coin項(xiàng)目的又一個(gè)細(xì)微語(yǔ)言增強(qiáng)已經(jīng)被包含在Java 7中:由谷歌專任工程師兼Java講師Neal Gafter提出的Java增強(qiáng)異常處理功能。Open JDK開發(fā)的***Joe Darcy已經(jīng)在其博客上宣布了這個(gè)變化。

創(chuàng)新互聯(lián)長(zhǎng)期為千余家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為玉林企業(yè)提供專業(yè)的成都做網(wǎng)站、網(wǎng)站制作,玉林網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

此次變動(dòng)增加了兩處對(duì)異常處理機(jī)制的細(xì)微增強(qiáng):

◆Multicatch:開發(fā)者現(xiàn)在能夠在一個(gè)catch代碼塊中捕獲多個(gè)異常類型;

◆Final Rethrow:它可以讓開發(fā)者捕獲一個(gè)異常類型及其子類型,并且無(wú)需向方法聲明中增加拋出子句,就能重新將其拋出。

過(guò)去我們?cè)诓东@多個(gè)異常類型時(shí),往往會(huì)使用以下類型的代碼:

 
 
 
  1. } catch (FirstException ex) {  
  2.     logger.error(ex);  
  3.     throw ex;  
  4. } catch (SecondException ex) {  
  5.     logger.error(ex);  
  6.     throw ex;  
  7. }  

但是以上代碼除了冗長(zhǎng)外沒(méi)有什么優(yōu)點(diǎn)。一個(gè)解決辦法是找出這兩個(gè)異常類型的共同子類型,只對(duì)其進(jìn)行捕獲并拋出。但是這種方法通常會(huì)捕獲一些你并不需要的異常。

現(xiàn)在借助于新增的功能,開發(fā)者可以使用以下代碼:

 
 
 
  1. } catch (FirstException | SecondException ex) {  
  2.     logger.error(ex);  
  3.     throw ex;  

這種代碼看上去要簡(jiǎn)潔清晰的多。

第二個(gè)增強(qiáng)功能要復(fù)雜一些。假如開發(fā)者希望捕獲所有異常,在進(jìn)行必要的幾個(gè)操作后,再將其拋出。就代碼編寫而言并不是一件難事,但是開發(fā)者必須在方法聲明中增加一個(gè)拋出子句,來(lái)管理自己代碼發(fā)出的新異常。而現(xiàn)在借助于Final Rethrow,開發(fā)者無(wú)需增加一個(gè)異常拋出子句就能完成此項(xiàng)任務(wù):

 
 
 
  1. try {  
  2.     // some code  
  3. } catch (final Throwable ex) {  
  4.     // some more code  
  5.     throw ex;  
  6. }  
  7.  

通過(guò)使用final關(guān)鍵字,開發(fā)者可以拋出所需的準(zhǔn)確動(dòng)態(tài)類型異常。這樣如果一個(gè)IOException異常發(fā)生,那么IOException將被拋出。當(dāng)然,開發(fā)者必須聲明不被捕獲的異常。如果開發(fā)者在try代碼塊(在//some more code部分)中沒(méi)有捕獲任何異常,拋出子句則與以前完全相同;反之如果捕獲到某些異常,開發(fā)者則可以進(jìn)行相應(yīng)處理。

Java 7中的multi-catch是一個(gè)非常好的功能,但是final rethrow對(duì)程序員來(lái)說(shuō)并不常用。

原文作者:Baptiste Wicht

原文題目:Better exception handling in Java 7 : Multicatch and final rethrow

【編輯推薦】

  1. Java 7 I/O新功能探秘:同步操作,多播與隨機(jī)存取
  2. 再探Java 7:***特性更新、代碼示例及性能測(cè)試
  3. Java 7的***類函數(shù):學(xué)習(xí)閉包的使用
  4. Java 7,下一代Java開發(fā)技術(shù)詳解
  5. Java 7 NIO2高性能Web服務(wù)器并發(fā)連接的處理

名稱欄目:初探Java7異常處理功能增強(qiáng)
本文路徑:http://www.dlmjj.cn/article/dhjpech.html