[英]What would cause a try/catch block to fail exception handling despite execution landing in catch block?
從下面的代碼執行
line 108 try
line 109 {
line 110 columnValCSV = columns_List(fileNumber)(columnNumber)
line 111 }
line 112 catch
line 113 {
line 114 case e: Exception => println(columnValCSV +"OtherLogText")
line 115 }
如堆棧跟蹤所示,落在 catch 塊中。
線程“main”中的異常 java.lang.ArrayIndexOutOfBoundsException: 10 at Main$.$anonfun$parseSecondDataSource$2(Main.scala:114) at Main$.$anonfun$parseSecondDataSource$2$adapted(Main.scala:85) at scala。 collection.Iterator.foreach(Iterator.scala:929) at scala.collection.Iterator.foreach$(Iterator.scala:929) at scala.collection.AbstractIterator.foreach(Iterator.scala:1417) at Main$.$anonfun$ parseSecondDataSource$1(Main.scala:85) at Main$.$anonfun$parseSecondDataSource$1$adapted(Main.scala:68) at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:59) at scala.collection.mutable .ResizableArray.foreach$(ResizableArray.scala:52) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at Main$.parseSecondDataSource(Main.scala:68) at Main$.main(Main.scala) :147) 在 Main.main(Main.scala)
然而,它沒有像我的代碼應該做的那樣避免拋出異常,而是崩潰了。
異常處理程序也可以拋出。
scala> try throw null catch { case _: NullPointerException => ??? }
scala.NotImplementedError: an implementation is missing
at scala.Predef$.$qmark$qmark$qmark(Predef.scala:347)
at .liftedTree1$1(<console>:1)
... 28 elided
catch 塊中的實際打印語句引用了我放在 try 塊中的相同變量。 那就是問題所在
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.