はじめての例外 | とある文系SEの開発日記

とある文系SEの開発日記

文系学部から某SIerに就職が決まったぺーぺーエンジニアのブログ

今回、初めて例外処理を使ったのでメモっておきます。


(構文)


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の方が断然楽ですね


でも後々例外処理を使う場面が出てくると思うので


これを機にしっかりと覚えたいと思います