17.6. Wyrażenie try z klauzulami catch i finally
Wyrażenie try może zawierać jednocześnie klauzule catch i finally. W takim przypadku klauzula catch musi znaleźć się przed klauzulą finally. Wyrażenie try mające następującą postać:
try b catch e1 finally e2
odpowiada następującym dwóm zagnieżdżonym wyrażeniom try
try {
try b catch e1
} finally e2
Na przykład następujące dwa wyrażenia są równoważne.
scala> try throw new Exception("1") catch {
| case ex:Exception => println("ex: "+ex); throw ex
| } finally println("finally")
ex: java.lang.Exception: 1
finally
java.lang.Exception: 1
at .liftedTree1$1(<console>:11)
... 37 elided
scala> try {
| try throw new Exception("1") catch {
| case ex:Exception => println("ex: "+ex); throw ex
| }
| } finally println("finally")
ex: java.lang.Exception: 1
finally
java.lang.Exception: 1
at .liftedTree1$1(<console>:12)
... 41 elided
