我一直無法找到一種方法來提供一個空(無操作)的方式來完成下面的Scala代碼中的catch塊:在Scala 2.10或更高版本中,如何提供一個「空」catch塊
var autoCloseables: List[AutoCloseable] = List()
... //some code that fills the list with various java.sql.* instances; Connection, Statement, ResultSet
autoCloseables.map(try {_.close} catch {case se: SQLException => NoOp})
我試圖取代「NoOp
」與「()
」,「Unit
」,「None
」,「se.getMessage()
」等我繼續接受在Eclipse中陳述各種形式的「類型不匹配的錯誤;發現:單位,必需:AutoCloseable =>?「。
我也試圖改變最終線以下,但仍然得到同樣的警告如上:
autoCloseables.map(try {_.close} catch {case _: Throwable => })
任何具體指導,這將不勝感激。而且,我瞭解ARM庫。現在,請假設我無法使用它,需要從這個特定問題形成框架的解決方案。謝謝。
是否有可能錯誤是由'map'而不是'foreach'觸發的?也就是說,'map'正在努力尋找新列表的成員類型。 –
當我將其更改爲foreach時,錯誤仍然存在。這不會使你的猜測不正確。只是這個foreach和map有同樣的問題。布萊克的回答在看完後顯得十分明顯,正是我所需要的。 – chaotic3quilibrium