回答編集履歴

1 誤字

katoy

katoy score 20718

2016/02/29 20:24  投稿

質問文もコードをベースに動作するように書いてみました。
例外クラスの書き方はあまり適切な例になっていません。
web や書籍で例外クラスの書き方のついては別途勉強することをお勧めします。
web や書籍で例外クラスの書き方については別途勉強することをお勧めします。
```java
public class CalcMain {
   public static void main(String[] args) {
       //入力チェック
       int num1 = Integer.parseInt(args[0]);
       int num2 = Integer.parseInt(args[2]);
       int total;
       try {
           //入力演算子判定処理
           if ( args[1].equals("+") ) {               //加算パターン
               total = num1 + num2 ;
           } else if ( args[1].equals("-") ) {       //減算パターン
               total = num1 - num2 ;
           } else if ( args[1].equals("*") ) {       //乗算パターン
               total = num1 * num2 ;
           } else if ( args[1].equals("/") ) {       //除算パターン
               total = num1 / num2 ;
           } else {
               throw new BadOperationException(args[1]);
           }
           if (total < 0 || total > 100) {
               throw new CalTotalException("total=" + total);
           }
           System.out.println("total=" + total);
       } catch (BadOperationException ex) {
           System.out.println(ex.toString());
       } catch (CalTotalException ex) {
           System.out.println(ex.toString());
       }
   }
}
//ユーザー定義例外処理クラス 例外演算子
class BadOperationException extends Exception {
   public BadOperationException(String message) {
       super(message);
   }
}
//ユーザー定義例外処理クラス 合計値超過
class CalTotalException extends Exception {
   public CalTotalException(String message) {
       super(message);
   }
}
```
実行例
```
$ java CalcMain 1 + 2
total=3
$ java CalcMain 1 x 2
BadOperationException: x
$ java CalcMain 99 + 2
CalTotalException: total=101
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る