Java Basic try catch文 〜Step1_3_3〜
前回は、while文についてやりました。
今回はtry catch文についてやります
まず、try catch文ってなに?
って話ですが…一言で言うと
エラーハンドリング用の書き方です。
じゃ、エラーハンドリングって?
それは「このケースはエラーにしよう」
と決めた時、想定しない値が入った時
など色々ありますが、下に例を示します
(例)
ゲームを起動する時にインターネットに繋がらない時、この時はゲームを起動する事は出来ないのでエラーですよとユーザーに伝えてあげる必要があります。
プログラム的には…
ゲーム起動時にインターネットへアクセスを試みるがアクセスできない場合
この時に JavaはExceptionクラスもしくはErrorクラスを「投げて」来ます。
この「投げる」というのは後でやります
「throw」文の書き方から日本語ではこの様な呼び方になっています。
なので
try {
//Excetionが投げられる可能性のある
//処理
} catch (Exception e) {
//エラーの時の処理(ハンドル)
}
の様に書きます。
上の例では「Exceptionクラス」をキャッチしています。
このクラスは、日本語では「例外クラス」と呼ばれ
想定外の事が起こった時に使用します。
詳細に関しては以下のページを参照してください。
Java Basic try catch文 〜Step1_3_3〜 – PGボックス
具体的には標準入力や外部のネットワークに接続する時
DBへアクセスする時など色々ありますが
「想定外の事象が起こり得る時」にこのクラスを使用します。
実際にはコードを描いてみるとわかりますが
例えば
標準入力を行う時に(起動した後にコンソールから入力)
実装する時に下のような書き方をしたとします。
byte[] b = new byte[5];
System.in.read(b);
System.out.println("入力したのは[" + new String(b) + "]ですね");
この時に赤字の部分では、標準入力からの入力を受けるとき
想定外の事象が起こり得ます。
それは、JavaAPIですでに実装されていて
「IOException」というクラスが投げられるように
処理が記載されています。
詳細は下のページに記載してます。
Java Basic try catch文 〜Step1_3_3〜 – PGボックス
細かい話は詳細部分で記載いたします。
<問題1>
上の例を参考にして、標準入力からの入力を
コンソールに出力するプログラムを作成してください。
<問題2>
標準入力からの例外(Exception)と入力の値により
投げられる例外を別々に定義して
それぞれの例外が投げられた時に別の文言を
コンソールに出力するプログラムを作成してください。
例:
System.in.reaf(inputByte);
String input = new String(inputByte);
// 入力の判定を行いエラー時は
throw new Exception("入力違反です");
でわでわ