[JAVA] ์˜ˆ์™ธ์ฒ˜๋ฆฌ (Exception)

2023. 1. 20. 21:13ยทDevelop/JAVA

์˜ˆ์™ธ ์ฒ˜๋ฆฌํ•˜๊ธฐ

 ๋‹ค์Œ์€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ try, catch๋ฌธ์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ์ด๋‹ค.

try {
    ...
} catch(์˜ˆ์™ธ1) {
    ...
} catch(์˜ˆ์™ธ2) {
    ...
}

try ๋ฌธ์•ˆ์˜ ์ˆ˜ํ–‰ํ•  ๋ฌธ์žฅ๋“ค์—์„œ ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด catch๋ฌธ์— ์†ํ•œ ๋ฌธ์žฅ๋“ค์€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค.

ํ•˜์ง€๋งŒ try ๋ฌธ์•ˆ์˜ ๋ฌธ์žฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์— ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ˆ์™ธ์— ํ•ด๋‹น๋˜๋Š” catch๋ฌธ์ด ์ˆ˜ํ–‰๋œ๋‹ค.

 

 

์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„์—ˆ์„ ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค.

int c;
try {
    c = 4 / 0;
} catch(ArithmeticException e) {
    c = -1;  // ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ด ๋ฌธ์žฅ์ด ์ˆ˜ํ–‰๋œ๋‹ค.
}

rithmeticException์ด ๋ฐœ์ƒํ•˜๋ฉด c์— -1์„ ๋Œ€์ž…ํ•˜๋„๋ก ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•œ ๊ฒƒ์ด๋‹ค. 

ArithmeticException e์—์„œ e๋Š” ArithmeticException ํด๋ž˜์Šค์˜ ๊ฐ์ฒด, ์ฆ‰ ์˜ค๋ฅ˜ ๊ฐ์ฒด์— ํ•ด๋‹นํ•œ๋‹ค.

์ด ์˜ค๋ฅ˜ ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์˜ˆ์™ธ ํด๋ž˜์Šค์˜ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ• ์ˆ˜๋„ ์žˆ๋‹ค.

 

 

finally

public static void main(String[] args) {
        Sample sample = new Sample();
        int c;
        try {
            c = 4 / 0;
        } catch (ArithmeticException e) {
            c = -1;
        } finally {
            sample.shouldBeRun();  // ์˜ˆ์™ธ์— ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ์ˆ˜ํ–‰๋œ๋‹ค.
        }
    }

finally ๊ตฌ๋ฌธ์€ try ๋ฌธ์žฅ ์ˆ˜ํ–‰ ์ค‘ ์˜ˆ์™ธ๋ฐœ์ƒ ์—ฌ๋ถ€์— ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ์‹คํ–‰๋œ๋‹ค.

๋”ฐ๋ผ์„œ ์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด sample.shouldBeRun() ๋ฉ”์„œ๋“œ๊ฐ€ ์ˆ˜ํ–‰๋˜์–ด "ok, thanks" ๋ฌธ์žฅ์ด ์ถœ๋ ฅ๋  ๊ฒƒ์ด๋‹ค.

 

 

RuntimeExeption๊ณผ Exception

 

RuntimeException์€ ์‹คํ–‰์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ด๊ณ  Exception์€ ์ปดํŒŒ์ผ์‹œ ๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์ด๋‹ค.

์ฆ‰, Exception์€ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ์‹œ ์ด๋ฏธ ์˜ˆ์ธก๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ณ 

RuntimeException์€ ๋ฐœ์ƒ ํ• ์ˆ˜๋„ ๋ฐœ์ƒ ์•ˆ ํ• ์ˆ˜๋„ ์žˆ๋Š” ๊ฒฝ์šฐ์— ์ž‘์„ฑํ•œ๋‹ค.

๊ทธ๋ž˜์„œ Exception์„ Checked Exception, RuntimeException์„ Unchecked Exception ์ด๋ผ๊ณ ๋„ ํ•œ๋‹ค.

 

 

์˜ˆ์™ธ ์‚ฌ์šฉํ•ด์•ผ ํ•  ์ƒํ™ฉ
IllegalArgumentException ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ์˜๋„ํ•˜์ง€ ์•Š์€ ์ƒํ™ฉ์„ ์œ ๋ฐœ์‹œํ‚ฌ ๋•Œ
IllegalStateException ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ๊ฐ€ ์•„๋‹ ๋•Œ
NullPointerException ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์ด null ์ผ ๋•Œ
IndexOutOfBoundsException ์ธ๋ฑ์Šค ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์ด ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚  ๋•Œ
ArithmeticException ์‚ฐ์ˆ ์ ์ธ ์—ฐ์‚ฐ์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๋•Œ
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'Develop > JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[JAVA] ์ƒ์„ฑ์ž(Constructor) / final ํ‚ค์›Œ๋“œ  (0) 2023.02.07
JAVA / ๋ฐฐ์—ด(Array) ์™€ ๋ฆฌ์ŠคํŠธ(List) ์˜ ์ฐจ์ด / ์ œ๋„ค๋ฆญ์Šค(Generics)  (1) 2023.01.20
(0) . JAVA ํ•™์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ / JAVA ์–ธ์–ด์˜ ํŠน์ง•  (0) 2023.01.07
'Develop/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [JAVA] ์ƒ์„ฑ์ž(Constructor) / final ํ‚ค์›Œ๋“œ
  • JAVA / ๋ฐฐ์—ด(Array) ์™€ ๋ฆฌ์ŠคํŠธ(List) ์˜ ์ฐจ์ด / ์ œ๋„ค๋ฆญ์Šค(Generics)
  • (0) . JAVA ํ•™์Šต ํ™˜๊ฒฝ ๊ตฌ์ถ•ํ•˜๊ธฐ / JAVA ์–ธ์–ด์˜ ํŠน์ง•
hello_u
hello_u
  • hello_u
    ๐Ÿ˜œ
    hello_u
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐Ÿ˜œ (345)
      • Hardware (2)
        • BMC (2)
      • Spring (109)
        • Spring ์ž…๋ฌธ (20)
        • Spring ๊ธฐ๋ณธ (27)
        • Spring MVC (18)
        • Spring DB (22)
        • Spring JPA ๊ธฐ๋ณธ (16)
        • Spring JPA ํ™œ์šฉ (6)
      • Develop (27)
        • DB (8)
        • JAVA (4)
        • Web (2)
        • Python (7)
        • OSS (2)
        • Git (2)
        • API (2)
      • Algorithm (155)
        • CodeUp ๊ธฐ์ดˆ (44)
        • ํŒŒ์ด์ฌ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (64)
        • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค (4)
        • SWEA (30)
        • Softeer (10)
        • BOJ (2)
      • CS (9)
        • ์ปดํ“จํ„ฐ์ผ๋ฐ˜ (3)
        • ์šด์˜์ฒด์ œ (3)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
        • ์ •๋ณดํ†ต์‹  (1)
        • ์ž๋ฃŒ๊ตฌ์กฐ (1)
        • ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™ (1)
        • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด (0)
        • ์ตœ์‹  ๋””์ง€ํ„ธ, ์ผ๋ฐ˜์ƒ์‹ (0)
      • ์ž๊ฒฉ์ฆ (41)
        • ์ •๋ณด๋ณด์•ˆ๊ธฐ์‚ฌ (9)
        • ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ (22)
        • ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 1๊ธ‰ (3)
        • SQLD (7)
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
hello_u
[JAVA] ์˜ˆ์™ธ์ฒ˜๋ฆฌ (Exception)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”