例外が発生する可能性があるメソッドでは、そのメソッドにおいて例外を捕捉するか、そのメソッドを呼び出したメソッドに例外を投げる(任せる)かを選ぶ必要があります(例外がRuntimeExceptionのサブクラスである場合を除く)。前者を選ぶ場合は「try-catch」構文を用い、後者を選ぶ場合は「throws」を用います。 このどちらを選択するかは、機械的には決められません。メソッドの役割を考えて選択する必要があります。また、複数の例外がある場合、「try-catch」すべき例外と「throws」すべき例外に分けることを考えましょう。 まず、コンパイルエラーを逃れるためだけの「throws」は避けるべきです。下は最も悪い例といえるでしょう。 6行目の「throws Exception」を外すと分かりますが、このメソッドは、URLクラスのコンストラクタが不正なURLを受け取ったときに投げる M
![throwsを用いるかどうかはメソッドの役割で決まる](https://cdn-ak-scissors.b.st-hatena.com/image/square/115f5a8a7afaf169a2c92d581d9ec62bfa80fd91/height=288;version=1;width=512/https%3A%2F%2Fimage.itmedia.co.jp%2Fait%2Farticles%2F0611%2F22%2Fr20_164-1.gif)