val;}関数の利用側のコードは以下のようになります。したように、例外処理専用の構文を用いなくても例外処理を行えます。上述したような方法にはいくつか欠点があります。その欠点を以下に挙げます。正常動作部と例外処理部の区別が分かりにくい。関数利用者に例外処理を行うことを強制出来ない。関数を呼び出すたびに例外処理用のコードを書く必要がある。例外処理構文を用いるとこれらの問題を解決することが出来ます。例外処理構文について説明していきたいと思います。文を使って例外が起こったことを利用側に知らせます。文は以下のようにして使用します。文は想定外のことが起こった場所に挿入します。このような処理を「例外を投げる」といいます。例外が投げられると、正常動作部の処理は中断され、例外処理部が呼び出されます。クラスの派生クラスのインスタンスです。することは出来ません。文を使って書き直してみましょう。文を使って例外を処理します。文は以下のようにして使用します。リソースの破棄などを行う}try句は必須ですが、catch、finallyはどちらか片方だけにできます。片方だけ使うことは多いです。リソースの破棄など}本項では主にcatchの方について説明して行きます。ついては「リソースの破棄」で改めて説明します。finallyが必要になる頻度は少なめです。catchcatch句は複数並べて書けます。文を使って書き直してみましょう。}}ちなみに、同じ型のcatchを複数並べるとエラーになります。文を使った例外処理には以下のような利点があります。正常動作部と例外処理部の区別が明確になります。中には例外発生時の対処のみが書かれます。関数利用側に例外処理させることを強制できます。しなければ)、プログラムは強勢終了されます。対処のしようのないエラーがあった場合、対処できないままプログラムが動き続けるよりは、強制終了される方が後々困ることが少なくなります。節)が一か所にまとまります。同じような処理を何か所も書く必要がなくなります。7throwはこれまでステートメントでしか書けませんでした。throwも式として書きたいという要望がありました。限られてはいますが、確かに書きたい場面はあります。expression)が追加されました。以下の3カ所でに書けます。後ろ)null合体演算子(??)の後ろ条件演算子の第2、第3引数(条件式以外の部分。long");}これ以外の文脈でthrow式を書くことはできません。