09009

[Java] ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ณธ๋ฌธ

Back-End/JAVA
[Java] ์˜ˆ์™ธ์ฒ˜๋ฆฌ
09009

โœ ์ž…๋ ฅ

import java.util.Scanner;

public class ExceptionCase {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        System.out.println("a?");
        int n1 = kb.nextInt();
        System.out.println("b?");
        int n2 = kb.nextInt();

        System.out.printf("%d / %d = %d\n", n1, n2, n1 / n2);

    }
}

๐Ÿ’ป ์ถœ๋ ฅ

b์— 0์„ ์ž…๋ ฅํ•˜์˜€์„ ๋•Œ ์—๋Ÿฌ ๋ฐœ์ƒ
intํ˜•์„ ์ž…๋ ฅํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋ฌธ์ž๋ฅผ ์ž…๋ ฅํ•˜์˜€์„ ๊ฒฝ์šฐ ์—๋Ÿฌ ๋ฐœ์ƒ


์˜ˆ์™ธ์ฒ˜๋ฆฌํ•œ ์ฝ”๋“œ

โœ ์ž…๋ ฅ

import java.util.Scanner;

public class ExceptionCase {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        try {
            System.out.println("a?");
            int n1 = kb.nextInt();
            System.out.println("b?");
            int n2 = kb.nextInt();
            System.out.printf("%d / %d = %d\n", n1, n2, n1 / n2);
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage()); // e ์˜ˆ์™ธ ๊ฐ์ฒด, getMessage: ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ
        }
    }
}

๐Ÿ’ป ์ถœ๋ ฅ

 

โœ ์ž…๋ ฅ

import java.util.InputMismatchException;
import java.util.Scanner;

public class ExceptionCase {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        try {
            System.out.println("a?");
            int n1 = kb.nextInt();
            System.out.println("b?");
            int n2 = kb.nextInt();
            System.out.printf("%d / %d = %d\n", n1, n2, n1 / n2);
        } catch (ArithmeticException e) {
            System.out.println(e.getMessage()); // e ์˜ˆ์™ธ ๊ฐ์ฒด, getMessage: ์˜ˆ์™ธ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ
        } catch (InputMismatchException e) {
            System.out.println(e.getMessage());
        }
    }
}

๐Ÿ’ป ์ถœ๋ ฅ


์„œ๋กœ ๋‹ค๋ฅธ ์˜ˆ์™ธ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•œ ์ฝ”๋“œ

โœ ์ž…๋ ฅ

import java.util.InputMismatchException;
import java.util.Scanner;

public class ExceptionCase {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        try {
            System.out.println("a?");
            int n1 = kb.nextInt();
            System.out.println("b?");
            int n2 = kb.nextInt();
            System.out.printf("%d / %d = %d\n", n1, n2, n1 / n2);
        } catch (ArithmeticException | InputMismatchException e) { // ์„œ๋กœ ๋‹ค๋ฅธ ์˜ˆ์™ธ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌ
            System.out.println(e.getMessage());
        }
    }
}

๐Ÿ’ป ์ถœ๋ ฅ

 

์˜ˆ์™ธ ํด๋ž˜์Šค์—๋„ ์ƒ์† ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ œ์ผ ๋ฒ”์œ„๊ฐ€ ๋„“์€ ๊ฒƒ : Exception

import java.util.InputMismatchException;
import java.util.Scanner;

public class ExceptionCase {
    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        try {
            System.out.println("a?");
            int n1 = kb.nextInt();
            System.out.println("b?");
            int n2 = kb.nextInt();
            System.out.printf("%d / %d = %d\n", n1, n2, n1 / n2);
        } catch (ArithmeticException | InputMismatchException e) { // ์„œ๋กœ ๋‹ค๋ฅธ ์˜ˆ์™ธ๋ฅผ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌ
            System.out.println(e.getMessage());
        } catch (Exception e) { // ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ์ƒ์†๊ด€๊ณ„์—์„œ ํ•˜์œ„ ์˜ˆ์™ธํด๋ž˜์Šค์— ๋Œ€ํ•œ catch ๊ตฌ๋ฌธ์„ ์ฝ”๋“œ ์œ„์ชฝ์— ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.
            e.printStackTrace();
        }
    }
}

main๋ฉ”์„œ๋“œ์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

โœ ์ž…๋ ฅ

public class ExceptionMessage {
    public static void md1(int n) {
        md2(n, 0);
    }

    private static void md2(int n1, int n2) {
        int r = n1 / n2;
    }

    public static void main(String[] args) {
        try {
            md1(3); // md2์—์„œ ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด ํ˜ธ์ถœํ•œ md1์ด ๋ฐ›์•„ ์ฒ˜๋ฆฌ, md1๋„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š์œผ๋ฉด main์œผ๋กœ ๋„˜์–ด์™€ ์ฒ˜๋ฆฌ.
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

๐Ÿ’ป ์ถœ๋ ฅ