もう一度傘を持って。

未了だった「傘を持って。」を再考してみます。せっかくなので、「確率の範囲外」という例外を作ってみました。

import java.io.*;

public class Kasa4 {
  public static void main(String[] args) {
    BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
    try {
      System.out.println("降水確率を入力してください。");
      String line = reader.readLine();
      int n = Integer.parseInt(line);
      /* 妥当な確率値か確認 */
      if (n < 0 || n > 100) throw new RatioOutOfBoundsException(n);
      /* 主処理 */
      System.out.println("降水確率は" + n + "%です。");
      if (n > 50) {
        System.out.println("傘を忘れずにね。");
      } else {
        System.out.println("傘は要りません。");
      }
      System.out.println("行ってらっしゃい。");
    } catch (IOException e) {
      System.out.println(e);
    } catch (NumberFormatException e) {
      System.out.println("数字の形式が正しくありません。");
    } catch (RatioOutOfBoundsException e) {
      System.out.println(e);
    }
  }
}

class RatioOutOfBoundsException extends Exception {
  public RatioOutOfBoundsException(int r) {
    super(r + "%は確率の範囲(0〜100%)外です。");
  }
}
E:\study\04>javac Kasa4.java
E:\study\04>java Kasa4
降水確率を入力してください。
-20
RatioOutOfBoundsException: -20%は確率の範囲(0〜100%)外です。

E:\study\04>java Kasa4
降水確率を入力してください。
120
RatioOutOfBoundsException: 120%は確率の範囲(0〜100%)外です。

E:\study\04>java Kasa4
降水確率を入力してください。
100
降水確率は100%です。
傘を忘れずにね。
行ってらっしゃい。

しかし、mainを終わらせてしまっているという点はまったく変わっていませんね。解決したのか、そうでないのか、ちょっと微妙なところです。