例外が発生する可能性があるメソッドでは、そのメソッドにおいて例外を捕捉するか、そのメソッドを呼び出したメソッドに例外を投げる︵任せる︶かを選ぶ必要があります︵例外が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)