Javaは例外を無視できないよう、メソッド定義のthrows句でthrowする例外を指定する。 メソッドをの呼び出し側もこれを意識してcatchするなりthrows句に例外を指定するなりしないといけない。
これによって静的なチェックが可能になり、アプリが堅牢になる、というのが普通の意見だが 一方でこれが本当に機能するケースって少ないよね、だからthrows邪魔なので実行時例外を使うようにした方がいいよねという意見もあるらしい。
自分としてはthrowsいらないという意見の方がしっくりくる感じ。Java歴短いからかもしれないけどthrowsをあまり有効に使えたことがない気がする。現状なるべくthrowsを書かない方針でコード書いてます。
具体的なコードなどは以下サイトが参考になる。
参考:
http://www.nulab.co.jp/designPatterns/designPatterns4/designPatterns4-2.html