ファイルに次のダミーの Scala コードがありますtest.scala
。
class Transaction {
def begin() {}
def commit() {}
def rollback() {}
}
object Test extends Application {
def doSomething() {}
val t = new Transaction()
t.begin()
try {
doSomething()
t.commit()
} catch {
case _ => t.rollback()
}
}
これを Scala 2.8 RC1 でコンパイルするとscalac -Xstrict-warnings test.scala
、次の警告が表示されます。
test.scala:16: warning: catch clause swallows everything: not advised.
case _ => t.rollback()
^
one warning found
では、キャッチオール式が推奨されない場合、代わりにそのようなパターンを実装するにはどうすればよいでしょうか? それとは別に、なぜそのような表現がとにかくアドバイスされないのですか?