簡體   English   中英

盡管執行登陸在 catch 塊中,什么會導致 try/catch 塊的異常處理失敗?

[英]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(Ite​​rator.scala:929) at scala.collection.Iterator.foreach$(Iterator.scala:929) at scala.collection.AbstractIterator.foreach(Ite​​rator.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM