Java

[Java] ๋‚ด๊ฐ€ ์˜ˆ์™ธ๋ฅผ '๋˜์ง€๋Š”' ๋ฒ•

newkr 2022. 9. 22. 00:55
728x90

๐Ÿค” ์Šค์Šค๋กœ ์ฃฝ์Œ์„ ํƒํ•œ๋‹ค๊ณ ?

 ์™ธ๊ตญ ์ข€๋น„ ์˜ํ™”๋‚˜ ๋งŒํ™”๋ฅผ ๋ณด๋ฉด ๊ฐ€๋” ๊ทธ๋Ÿฐ ๋Œ€์‚ฌ๋“ค์ด ์žˆ๋‹ค. '๋‚ด๊ฐ€ ์ž˜๋ชป๋  ๊ฑฐ ๊ฐ™์œผ๋ฉด ๋„ค ์†์œผ๋กœ ๋‚˜๋ฅผ ์ฃฝ์—ฌ์ค˜.' ์ด๋ ‡๊ฒŒ ๋‚˜ ์Šค์Šค๋กœ๊ฐ€ ์ฃผ๋ณ€์— ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ๊ฒƒ ๊ฐ™์„ ๋•Œ, ์Šค์Šค๋กœ ์ฃฝ์Œ์„ ํƒํ•˜๊ธฐ๋„ ํ•œ๋‹ค.

 ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ๋ญ”๊ฐ€ ๋ฌธ์ œ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์€ ์ฝ”๋“œ์— ์ง์ ‘ ์˜ˆ์™ธ๋ฅผ ๋˜์ง€๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋งŒ์•ฝ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์ปดํ“จํ„ฐ๊ฐ€ ๋ณ„ ๋ฌธ์ œ์—†๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ๊ทธ๋ƒฅ ์‹คํ–‰์‹œํ‚ฌ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์˜ˆ์™ธ๋ฅผ ๋˜์ง„๋‹ค๋Š” ํ‘œํ˜„์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š” ์ด๋Ÿฐ ๊ฒฝ์šฐ throw๋ฌธ์„ ์ž‘์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

import java.time.DateTimeException;

public class ExceptionPractice {
    public static void main(String[] args) {
        try {
            int minute = Integer.parseInt(args[0]);
            if (minute < 1 || minute >= 60) {
                throw new DateTimeException("Invalid minute");
            }
        } catch (DateTimeException e) {
            e.printStackTrace();
        }
    }
}

 ์œ„ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ์ค‘๊ฐ„์— throw new DateTimeException ์ด ๋ณด์ด๋Š”๋ฐ, throw๋ฅผ ํ†ตํ•ด DateTimeException ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์„œ ๋˜์ง€๊ฒ ๋‹ค๋Š” ์˜๋ฏธ๋‹ค. if๋ฌธ ์•ˆ์— throw๋ฌธ์ด ์‹คํ–‰๋˜๋ฉด try-catch๋ฌธ์—์„œ ์˜ˆ์™ธ๋ฅผ ์žก์•„ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ฆ‰, DateTimeException ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด catch๋ฌธ์—์„œ e.printStackTrace ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ์ด๋‹ค.

 ๐Ÿ“Œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• ํ•œ ๊ฐ€์ง€ ๋”!

2022.09.21 - [Java] - [Java] ์˜ˆ์™ธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

 

[Java] ์˜ˆ์™ธ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

2022.09.20 - [Java] - [Java] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ์ด์œ ์™€ ์ข…๋ฅ˜ [Java] ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์˜ ์ด์œ ์™€ ์ข…๋ฅ˜ ๐Ÿค—์˜ˆ์™ธ๋Š” ์‹ซ์€๋ฐ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ์ข‹์•„์š”  Error์™€ ๊ฐ™์€ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ํ”„๋กœ๊ทธ๋žจ์€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๊ธฐ ์–ด๋ ต

codari.tistory.com

 ์ €๋ฒˆ ๊ธ€์—์„œ ํ•œ ๊ฐ€์ง€ ๋นผ๋จน์€ ๊ฒƒ์ด ์žˆ๋‹ค. ์˜ˆ์™ธ๋ฅผ ์žก๋Š” ๋ฐฉ๋ฒ•์€ try-catch๋ฌธ ์™ธ์—๋„ ํ•œ ๊ฐ€์ง€ ๋” ์กด์žฌํ•˜๋Š”๋ฐ, ๋ฐ”๋กœ ๋ฉ”์„œ๋“œ์— throws๋ฌธ์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

import java.time.DateTimeException;

public class ExceptionPractice {
    public static void main(String[] args) {
        try {
            int minute = 70;
            test(minute);
        } catch (DateTimeException e) {
            e.printStackTrace();
        }
    }

    public static void test(int minute) throws DateTimeException {
        if (minute < 1 || minute >= 60) {
            throw new DateTimeException("Invalid minute");
        }
    }
}

 ๋‹ค๋งŒ, ๋ฉ”์„œ๋“œ์— throws๋ฌธ์„ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น ์ฝ”๋“œ์—์„œ ์˜ˆ์™ธ๋ฅผ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐœ๋…์€ ์•„๋‹ˆ๊ณ , ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ณณ์—์„œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ฒŒ๋” ๋งŒ๋“ ๋‹ค. ์œ„ ์ฝ”๋“œ์—์„œ ๋ณด๋ฉด test์—์„œ ๋ฐœ์ƒํ•œ DateTimeException์„ main๋ฌธ์—์„œ ์ฒ˜๋ฆฌํ•˜๊ฒŒ ๋œ๋‹ค.

 ์ด๋ฒˆ์—๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ง์ ‘ํ•˜๋Š” ์ด์œ ์™€ ๋ฐฉ๋ฒ• ๊ทธ๋ฆฌ๊ณ  ์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๋Š” ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค๋‹ค. ๋‹ค์Œ ํฌ์ŠคํŒ…์—๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‚จ์€ ์ž‘์—…์„ ๊ผญ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ž‘์„ฑํ•˜๋Š” ์ฝ”๋“œ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ๋‹ค.

728x90