解決lambda表達式內(nèi)出現(xiàn)異常無法throw拋出的問題
lambda表達式內(nèi)出現(xiàn)異常無法throw拋出
問題描述
今兒在使用lambda表達式時,lambda表達式內(nèi)出現(xiàn)了異常,準(zhǔn)備直接拋出,沒想到卻還是報錯:
由于博主lambda表達式用的比較少,剛看到這問題時,可以說是一臉懵逼。畢竟兩邊的提示可以說是前后矛盾啊。
刷新幾下編譯器還是報錯,就只能老老實實的找原因。
問題原因
所幸Java是一門比較成熟的語言,前輩們已經(jīng)踩了足夠的坑.
之所以有這種現(xiàn)象是因為lambda表達式本身沒有處理異常的機制 ,以至于遇到受檢異常時,無法通過主動拋出來解決.
但具體的也不是很清楚了,若有其他道友遇到這種問題,歡迎討論.
解決方案
將受檢異常包裝成非受檢異常,即RuntimeException
效果如下:
雖然效果還是不甚理想,就當(dāng)漲了一波lambda表達式的熟練度吧。
lambda表達式中無法拋出受檢異常
拋出受檢異常的時候,我們的接口應(yīng)該帶上throw關(guān)鍵字,但通過lambda表達式實現(xiàn)的Consumer的accept方法并不帶有關(guān)鍵字,因此在lambda表達式中不能拋出受檢異常必須把它吃掉
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
分享我的第一次java Selenium自動化測試框架開發(fā)過程
這篇文章主要介紹了分享我的第一次java Selenium自動化測試框架開發(fā)過程,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03SpringBoot Controller Post接口單元測試示例
今天小編就為大家分享一篇關(guān)于SpringBoot Controller Post接口單元測試示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案
這篇文章主要介紹了mybatis參數(shù)類型不匹配錯誤argument type mismatch的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-01-01