try/catchとthrow

Javaでメソッドにthrowを付けたりすることがありますが、throw構文のあるメソッドでtry/catchすりゃええじゃんと思ってきました。ていうかtry/catchだけ使ってても困らなかったわけです。
今、ゼミの卒業生から引き継いだ研究で使うシミュレータを作り直しているところなんですが、やたらとthrowを使ってるわけですね。気になったのでちょっと勉強してみた。

例外の起きたどっかのメソッドでtry/catchしてたのでは、処理の中断前に全体のデータの保存をしたり復旧を試みるための仕組みを別に作る必要がでてくる。throwによって例外の起きたメソッドの呼び出し元で対処した方が良いことがあるからthrowは使われていると理解した。

という今日のJavaメモ