java怎么實現(xiàn)try/catch異常塊

這篇文章主要講解了“java怎么實現(xiàn)try/catch異常塊”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“java怎么實現(xiàn)try/catch異常塊”吧!

創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設計、成都做網(wǎng)站、外貿網(wǎng)站建設、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務三水,10多年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:18980820575

在項目中,我們會遇到異常處理,對于運行時異常,需要我們自己判斷處理。對于受檢異常,需要我們主動處理。

但是繁瑣的try{}caht嵌套在代碼里,看著很不舒服,這里我們不討論性能,就代碼來講,來看看如何將他隱藏起來。原理是不變的。變得是寫法。下面我們來看如何優(yōu)雅的處理異常塊。

在這之前。你需要知道以下幾個概念:

  •  行為參數(shù)化:

是java8提出的,函數(shù)式編程的一種思想,通過把代碼包裝為參數(shù)傳遞行為,即把代碼邏輯包裝為一個參數(shù),傳到方法里。

  •  Lambda表達式:

java8提出:Lambda表達式理解為簡潔的表示可傳遞的匿名函數(shù)的一種方式,它沒有名稱,但它有函數(shù)體,參數(shù)列表,返回類型。可以拋出一個異常類型。包裝代碼邏輯為參數(shù)即使用Lambda表達式。

  •  函數(shù)式接口:

本質上是只有一個抽象方法的普通接口,可以被隱式的轉換為Lambda表達式,需要用注解定義(@FunctionalInterface)。默認方法和靜態(tài)方法可以不屬于抽象方法,可以在函數(shù)式接口中定義。

java怎么實現(xiàn)try/catch異常塊

如果函數(shù)式接口中額外定義多個抽象方法,那么這些抽象方法簽名必須和Object的public方法一樣,接口最終有確定的類實現(xiàn), 而類的最終父類是Object。因此函數(shù)式接口可以定義Object的public方法。

java怎么實現(xiàn)try/catch異常塊

這句代碼想來小伙伴都不陌生。這是一個受檢異常,需要拋出一個ClassNotFoundException。

正常的寫法:

java怎么實現(xiàn)try/catch異常塊

java怎么實現(xiàn)try/catch異常塊

嗯,我們來看具體的實現(xiàn):很簡單,我們要做的,即把Class<?> clazz = Class.forName("類名");當做一種行為去處理,接受一個String ,得到一個Class,所以我們要定義一個函數(shù)接口,描述這種行為。

java怎么實現(xiàn)try/catch異常塊

這里,因為我們的行為需要拋出異常。所以在接口里也拋出異常。

然后,我們需要定義一個方法,將我們的行為作為參數(shù)傳進去,同時,捕獲一下我們的異常。

java怎么實現(xiàn)try/catch異常塊

然后,我們可以調用我們的方法classFind方法,

java怎么實現(xiàn)try/catch異常塊

當然。其實這種思想并不簡單的可以做捕獲異常的處理,

我們來看一個Demo->文本文件轉換為字符串:

在我看來;將文本文件轉換為字符串,我們需要使用高級流包裝低級流,然后做緩存讀出來。這里,我們不可避免的會遇到異常處理,流的關閉等操作,下面我們將這些代碼都異常起來。專心寫讀的邏輯即可。

我的思路:

我對java IO用的不是很熟,大家有好的方法請留言,相互學習:

FileInputStream fileInputStream = new FileInputStream(file))  InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream))  BufferedReader bufferedReader = new BufferedReader(inputStreamReader)) String str = bufferedReader.readLine()

字節(jié)流-》字符流-》字符緩存流 即 將字節(jié)流轉換為字符流之后在用高級流包裝。

所以我的思路是避免在邏輯里出現(xiàn)太多的IO流關閉,和異常捕獲,專心處理讀取邏輯即可,結合以下兩種技術:

  •  try(){}【自動關閉流,1.7支持】

  •  lambda特性來實現(xiàn)【行為參數(shù)化,1.8】

java怎么實現(xiàn)try/catch異常塊

執(zhí)一個行為,任何BufferReader -> String的Lambda表達式都可以作為參數(shù)傳入。只要符合peocess方法的簽名即可。

java怎么實現(xiàn)try/catch異常塊

執(zhí)行

java怎么實現(xiàn)try/catch異常塊

感謝各位的閱讀,以上就是“java怎么實現(xiàn)try/catch異常塊”的內容了,經(jīng)過本文的學習后,相信大家對java怎么實現(xiàn)try/catch異常塊這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

本文標題:java怎么實現(xiàn)try/catch異常塊
文章轉載:http://www.muchs.cn/article44/ijsihe.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、云服務器網(wǎng)站內鏈、用戶體驗靜態(tài)網(wǎng)站、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設