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