LoginSignup
0
1

More than 3 years have passed since last update.

Java 初めての例外処理(備忘録)

Last updated at Posted at 2020-10-14

Java練習

Javaで開発をすることになり現在Javaを勉強中
スッキリわかるJava入門 第2版 スッキリわかるシリーズを使ってJavaの勉強。

2章2-3のアプリをアレンジしてみた。

2章2-3のアプリをアレンジ

dokojavaを使用してブラウザでJavaを実行

Main.java
import java.util.Scanner;
import java.util.Random;

public class Main{
  public static void main(String[] args) {
    System.out.println("ようこそ占いの館へ\nあなたの名前を入力してください");
    String name = new Scanner(System.in).nextLine();
    System.out.println("あなたの年齢を入力してください。");
    String ageString = new Scanner(System.in).nextLine();
    if (isNumber(ageString)){
      int age = Integer.parseInt(ageString);
      int fortune = new Random().nextInt(4) + 1;
      System.out.println("占いの結果が出ました。");
      System.out.println( age + "歳の" + name + "さん、あなたの運勢は" + fortune + "です");
      System.out.println("1:大吉、2:中吉、3:吉、4:凶");
    } else {
      System.out.println("年齢が数字ではありません");
    }
  }
  static boolean isNumber(String num) {
    try {
      Integer.parseInt(num);
      return true;
    } catch (NumberFormatException e) {
      return false;
    }
  }
}
Main.java
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        System.out.println("ようこそ\n数字を入力してください");
        String s = new Scanner(System.in).nextLine();
        try {
            //例外が発生する可能性のある処理
            int i = Integer.parseInt(s);
            System.out.println(i);
        } catch (NumberFormatException e) {
            //例外が発生した場合の処理(例外が発生しなければ行われない処理)
            System.out.println("ちゃんと数字を入力してください!");
        }
    }
}

例外処理とは?

プログラムの実行中に,プログラムが予想していなかった事態が起きることがあります

ざっくり言うと例外処理とは,上で述べたような異常事態(例えば想定したデータ型と違う)の発生を通知するための仕組みです.

異常事態の発生を検知したメソッド(例えばparseInt)は例外を「投げ」ます。

これにより異常事態が発生したことを知らせます。

Javaの用語では「投げる」ことを「スロー(throw)する」と言います。

異常事態が発生したメソッドを呼び出した側のメソッドでは,投げられた例外を「捕える」ことができます.捕まえれば,適切な処理を行うことができます(同じく捕まえることを「キャッチ(catch)する」と言います)

参考にした記事(いつもありがとうございます。)

0
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1