budtree
budtree
budtree
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (76)
    • ๐Ÿ’ Computer Science (5)
      • OS (1)
      • Network (1)
      • Database (3)
    • ๐Ÿค study (20)
      • kubernetes๐Ÿ•ธ๏ธ (0)
      • Spring Boot๐Ÿƒ (1)
      • JPA (2)
      • Infra (2)
      • HTML | CSS (3)
      • Java (6)
      • Kotlin (3)
      • etc (3)
    • ๐Ÿ’ป Project (3)
      • memoir & diary ๐Ÿ“š (1)
      • class (0)
      • project (2)
    • ๐Ÿ”ฅ Problem Solving (38)
      • programmers (30)
      • SQL (8)
      • BOJ (0)
    • โœจ daily (10)
      • diary (5)
      • exercise (5)
      • travel (0)
      • review (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ—ฌ๋ฆฐ์ด
  • Summer/Winter Coding
  • ์ทจ์—…
  • 2018 KAKAO BLIND RECRUITMENT
  • ์ฝ”ํ‹€๋ฆฐ
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • java
  • ํ—ฌ์Šค์žฅ
  • ์ฝ”๋ฆฐ์ด
  • ์ทจ์—…์ค€๋น„
  • ์ผ๊ธฐ
  • ์ฝ”ํ…Œ
  • pt
  • HashMap
  • ์›”๊ฐ„์ฝ”๋“œ์ฑŒ๋ฆฐ์ง€
  • ๋ธ”๋ž™๋ฉ€ํ‹ฐ์ง
  • ๊ฐœ๋ฆฐ์ด
  • programmers
  • ์ž๋ฐ”
  • ์นด์นด์˜ค์ฝ”ํ…Œ
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ์›”๊ฐ„ ์ฝ”๋“œ ์ฑŒ๋ฆฐ์ง€
  • ArrayList
  • ์นด์นด์˜ค์ฝ”๋”ฉํ…Œ์ŠคํŠธ
  • ํ”„๋ฆฐ์ด
  • ํ”ผํ‹ฐ
  • ์„œ์šธ๋Œ€์ž…๊ตฌ ํ—ฌ์Šค์žฅ
  • ์นด์นด์˜ค
  • css
  • kotlin

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
budtree

budtree

[Java] ์—๋Ÿฌ์ฒ˜๋ฆฌ | Try-catch | ์ปดํŒŒ์ผ ์˜ค๋ฅ˜, ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜, ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ | ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• | checked, unchecked exception | ์˜ˆ์™ธ ์šฐ์„ ์ˆœ์œ„
๐Ÿค study/Java

[Java] ์—๋Ÿฌ์ฒ˜๋ฆฌ | Try-catch | ์ปดํŒŒ์ผ ์˜ค๋ฅ˜, ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜, ๋…ผ๋ฆฌ ์˜ค๋ฅ˜ | ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ• | checked, unchecked exception | ์˜ˆ์™ธ ์šฐ์„ ์ˆœ์œ„

2022. 7. 23. 14:44

Try-catch

try? catch? ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ž€ ๋ญ ํ•˜๋Š” ๊ฑด๊ฐ€์š”?

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์˜ค๋ฅ˜์˜ ์ข…๋ฅ˜

์ปดํŒŒ์ผ ์˜ค๋ฅ˜ : ํ”„๋กœ๊ทธ๋žจ์˜ ์‹คํ–‰์„ ๋ง‰๋Š” ์˜ค๋ฅ˜, ๋Œ€๋ถ€๋ถ„ ๋ฌธ๋ฒ•์ ์ธ ์˜ค๋ฅ˜๋‹ค.

//1 (ํ‚ค์›Œ๋“œ ๋งž์ถค๋ฒ• ์˜ค๋ฅ˜)
inet num = 1;
//2 (์„ธ๋ฏธ์ฝœ๋ก  ๋ˆ„๋ฝ)
boolean a = false
//3 (endif๋ฌธ๋ถ€ํ„ฐ ์‚ฌ์šฉ)
end if(!a) {
    return;
}
//4 (์„ ์–ธ์•ˆ๋œ ๋ณ€์ˆ˜ ์‚ฌ์šฉ)
b = 3;

๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ : ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜, ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—… ์‹œ๋„์‹œ ๋ฐœ์ƒ

1. 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๊ฒฝ์šฐ
2. ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ง€๋Š” ๊ฒฝ์šฐ
3. null point error

๋…ผ๋ฆฌ ์˜ค๋ฅ˜ : ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„ํ•œ ์ž‘์—…์„ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜, ์˜ˆ์ธก ๋ถˆ๊ฐ€๋Šฅํ•œ ์˜ค๋ฅ˜

try-catch

์ •์˜ : ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ตฌ๋ฌธ

์˜ˆ์™ธ์ฒ˜๋ฆฌ : ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ์˜ˆ์ธกํ•œ๋‹ค. try๋ธ”๋ก์—์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด catch๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๋‹ค๋ฅธ ์กฐ์น˜๋ฅผ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ตฌ์กฐ

try {
    //์˜ˆ์™ธ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œ
} catch(Exception1 e) {
    //Exception1 ๋ฐœ์ƒ์‹œ ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ
} catch(Exception2 e2) {
    //Exception2 ๋ฐœ์ƒ์‹œ ์ฒ˜๋ฆฌํ•  ๋ฌธ์žฅ
} finally {
    //์˜ˆ์™ธ๋ฐœ์ƒ์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ์ˆ˜ํ–‰๋˜์–ด์•ผ ํ•˜๋Š” ๋ฌธ์žฅ
}

finally๋ฌธ → try์— return์ด ์กด์žฌํ•˜๋”๋ผ๋„ finally ๊ตฌ๋ฌธ์•ˆ์— ์žˆ๋Š” ๋ช…๋ น์–ด๋Š” ๋ฐ˜๋“œ์‹œ ์‹คํ–‰ํ•œ๋‹ค.

ํ๋ฆ„

์˜ˆ์™ธ๊ฐ€ try ๋ธ”๋Ÿญ์—์„œ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ

๋ฐœ์ƒํ•˜๋Š” ์˜ˆ์™ธ์™€ ์ผ์น˜ํ•˜๋Š” catch๋ฌธ์ด ์žˆ๋Š”์ง€ ํ™•์ธ

→ ์žˆ์œผ๋ฉด catch๋ธ”๋Ÿญ ๋‚ด ๋ฌธ์žฅ ์‹คํ–‰, ์—†์œผ๋ฉด ์—๋Ÿฌ ๋ฐœ์ƒ(์—๋Ÿฌ๊ฐ€ ์ฒ˜๋ฆฌ๋˜์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ)

์˜ˆ์™ธ๋ฉ”์„ธ์ง€ ์–ป๋Š”๋ฐฉ๋ฒ•

  1. printStackTrace()
    : ์˜ˆ์™ธ๋ฐœ์ƒ ๋‹น์‹œ์˜ call stack์— ์žˆ๋˜ ๋ฉ”์„œ๋“œ์˜ ์ •๋ณด์™€ ์˜ˆ์™ธ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  2. getMessage()๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์€ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์ƒ์„ธํ•˜์ง„ ์•Š์Œ
    : ์˜ˆ์™ธํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์— ์ €์žฅ๋œ ๋ฉ”์„ธ์ง€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

์˜ˆ์™ธ ๋˜์ง€๊ธฐ

throw e : ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์˜ˆ์™ธ

try {
    Exception e = new Exception("์—๋Ÿฌ ๋ฐœ์ƒ");
    throw e;
} catch(Exception e) {
    System.out.println("๋ฉ”์„ธ์ง€:" + e.getMessage());
    e.printStackTrace();
}

์˜ˆ์™ธ ๋˜์ง€๊ธฐ

throw e : ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ณ ์˜๋กœ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ์˜ˆ์™ธ

try {
    Exception e = new Exception("์—๋Ÿฌ ๋ฐœ์ƒ");
    throw e;
} catch(Exception e) {
    System.out.println("๋ฉ”์„ธ์ง€:" + e.getMessage());
    e.printStackTrace();
}

์˜ˆ์™ธ์˜ ์šฐ์„ ์ˆœ์œ„

์˜ˆ์™ธ๋Š” ์ƒ์†์„ ํ†ตํ•ด ๋ถ€๋ชจ-์ž์‹ ๊ด€๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.

๋ถ€๋ชจ ์˜ˆ์™ธ๊ฐ€ ์œ„์— ์žˆ์œผ๋ฉด ์ž์‹ ์˜ˆ์™ธ๋Š” ๋ฐœ์ƒํ•  ์ˆ˜ ์—†์Œ.

Exception ์€ ArithmeticException, ArrayIndexOutOfBoundsException์˜ ์กฐ์ƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์œ„์—์„œ ๋จผ์ € ์žกํ˜€์„œ ์˜ค๋ฅ˜๊ฐ€ ์žกํž ์ˆ˜ ์—†๋Š” ๊ตฌ์กฐ์ด๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

ex) ArithmeticException์˜ ์ƒ์†๊ด€๊ณ„

์ถœ์ฒ˜ : https://docs.oracle.com/javase/7/docs/api/java/lang/ArithmeticException.html

Checked Exception vs Unchecked Exception

checked exception :

  • ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ™•์ธ ํ›„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒƒ ๊ฐ™์€ ์ฝ”๋“œ์— ์ปดํŒŒ์ผ ์—๋Ÿฌ๋ฅผ ๋ฐœ์ƒ
  • ์™ธ๋ถ€ ์š”์ธ์— ์˜ํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” Exception
  • exception์—์„œ runtime์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ (ex)IOException : ํŒŒ์ผ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ธ๋•Œ ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ ๋งŽ์ด ๋ฐœ์ƒ)
  • IOException์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ฐ˜๋“œ์‹œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค๋Š” ์—๋Ÿฌ ๋ฐœ์ƒ
  • ๋ฐ˜๋“œ์‹œ ์˜ˆ์™ธ์— ๋Œ€ํ•œ ์กฐ์น˜(throws, catch)๋ฅผ ํ†ตํ•ด ์ฒ˜๋ฆฌํ•ด์ค˜์•ผํ•จ

 

unchecked exception :

  • RuntimeException์„ ์ƒ์†ํ•˜๋Š” ํด๋ž˜์Šค
  • ๋ช…์‹œ์ ์ธ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ•์ œํ•˜์ง€๋Š” ์•Š์Œ(์ปดํŒŒ์ผ์—๋Ÿฌ ๋ฐœ์ƒ X)
  • ๋‚ด๋ถ€ ์š”์ธ์— ์˜ํ•ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” Exception
  • ๋Ÿฐํƒ€์ž„์—์„œ ์—๋Ÿฌ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปดํŒŒ์ผ ๋‹จ๊ณ„์—์„œ ๋ฏธ๋ฆฌ ์˜ˆ์™ธ๋ฅผ ์ฒดํฌํ•  ์ˆ˜ ์—†๋‹ค.
  • ex) ArithmeticException, IndexOutOfBoundsException

'๐Ÿค study > Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ObjectMapper๋ž€? | ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” | Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | Serialize, Deserialize | Json Parsing  (0) 2022.07.28
[Java] length, size()์˜ ์ฐจ์ด  (0) 2022.02.19
[Java] HashMap์ •๋ฆฌ  (0) 2022.02.15
[Java] ์ •๊ทœ์‹ ์ •๋ฆฌ  (0) 2022.02.02
[Java] ArrayList<Integer>๋ฅผ int[]๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•  (0) 2022.01.28
    '๐Ÿค study/Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [Java] ObjectMapper๋ž€? | ์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™” | Jackson ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ | Serialize, Deserialize | Json Parsing
    • [Java] length, size()์˜ ์ฐจ์ด
    • [Java] HashMap์ •๋ฆฌ
    • [Java] ์ •๊ทœ์‹ ์ •๋ฆฌ
    budtree
    budtree
    ๊ฐœ๋ฐœ, ์šด๋™, ์ผ์ƒ๋“ฑ์˜ ๊ธ€์„ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค.

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