(構文)
try{
//例外が起こりそうな処理
}catch(例外の種類 e) {
//例外発生時の処理
}
こんな感じです。
※eは変数名で何でもいいですが、eがよく使われます。
AKBで言うとこんな感じ
String akb[] = {"大島優子", "小嶋陽菜" , "道重さゆみ"};
try{
//akb[]を調べてAKBメンバーならOK
}catch(AKBじゃない e)
//名前を表示
}
こんな感じで使うと"道重さゆみ"と表示されるわけです
もっと具体化すると
//自作例外クラス
class NotAKBException extends Exception {
String errMsg;
NotAKBException(String msg) {
this.errMsg = msg;
}
}
class Test{
static String akb[] = {"大島優子", "小嶋陽菜" , "道重さゆみ" };
static void checkAKB(String name) throws NotAKBException {
if(!name.equals("大島優子") && !name.equals("小嶋陽菜")) {
throw new NotAKBException(name);
}
}
public static void main(String args[]){
try{
for(int i=0; i<akb.length; i++) {
checkAKB(akb[i]);
}
}catch(NotAKBException e){
System.out.println(e.errMsg + "はAKBのメンバーではない");
}
}
}
(実行結果)
道重さゆみはAKBのメンバーではない
という感じになります。
また、例外は全部if~elseで処理することもできます。こんな感じで
public class Test {
static String akb[] = {"大島優子", "小嶋陽菜" , "道重さゆみ" };
static boolean checkAKB(String name) {
if(!name.equals("大島優子") && !name.equals("小嶋陽菜")) {
return false;
}
return true;
}
public static void main(String args[]){
for(int i=0; i<akb.length; i++) {
if(!checkAKB(akb[i])) {
System.out.println(akb[i] + "はAKBのメンバーではない");
}
}
}
}
これっくらいのプログラムならif~elseの方が断然楽ですね
でも後々例外処理を使う場面が出てくると思うので
これを機にしっかりと覚えたいと思います