這篇文章主要講解了“如何解決lambda表達式內出現異常無法throw拋出的問題”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“如何解決lambda表達式內出現異常無法throw拋出的問題”吧!
lambda表達式內出現異常無法throw拋出
問題描述
問題原因
解決方案
lambda表達式中無法拋出受檢異常
今兒在使用lambda表達式時,lambda表達式內出現了異常,準備直接拋出,沒想到卻還是報錯:

由于博主lambda表達式用的比較少,剛看到這問題時,可以說是一臉懵逼。畢竟兩邊的提示可以說是前后矛盾啊。
刷新幾下編譯器還是報錯,就只能老老實實的找原因。
所幸Java是一門比較成熟的語言,前輩們已經踩了足夠的坑.
之所以有這種現象是因為lambda表達式本身沒有處理異常的機制 ,以至于遇到受檢異常時,無法通過主動拋出來解決.
但具體的也不是很清楚了,若有其他道友遇到這種問題,歡迎討論.
將受檢異常包裝成非受檢異常,即RuntimeException
效果如下:

雖然效果還是不甚理想,就當漲了一波lambda表達式的熟練度吧。
拋出受檢異常的時候,我們的接口應該帶上throw關鍵字,但通過lambda表達式實現的Consumer的accept方法并不帶有關鍵字,因此在lambda表達式中不能拋出受檢異常必須把它吃掉


感謝各位的閱讀,以上就是“如何解決lambda表達式內出現異常無法throw拋出的問題”的內容了,經過本文的學習后,相信大家對如何解決lambda表達式內出現異常無法throw拋出的問題這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。