Jeśli próba/catch nie zadziała, dlaczego myślę, że powinna zadziałać, spodziewam się, że zostanie złapany następujący wyjątek. Zamiast tego po prostu rzuca NPE.scala try/catch nie łapie niektórych wyjątków
try {
scala.io.Source.fromInputStream(null)
} catch {
case e:Throwable => println("oh cr*p!")
}
W przeciwieństwie do tego poniższy kod działa.
try {
1/0
} catch {
case e:Throwable => println("oh cr*p")
}
dlaczego nie powinniśmy złapać throwables jak StackOverflowError? – Trev
Ponieważ przepełnienie stosu jest zawsze błędem w programie i zamiast leczenia objawu, należy usunąć przyczynę. – drexin