λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Programming/Java

21 Exception handling

by Dowon Kang 2024. 1. 21.

μ˜ˆμ™Έ μ²˜λ¦¬(Exception Handling)λŠ” ν”„λ‘œκ·Έλž¨ μ‹€ν–‰ μ€‘에 λ°œμƒν•˜λŠ” μ˜ˆμ™Έλ₯Ό μ μ ˆν•˜κ²Œ μ²˜λ¦¬ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° κΈ°μˆ μž…λ‹ˆλ‹€. 

μ˜ˆμ™Έ 처리λ₯Ό 톡해 싀행쀑인 ν”„λ‘œκ·Έλž¨μ€ μ˜ˆμ™Έ 상황에 λŒ€ν•œ λŒ€μ²˜ 방법을 μ •μ˜ν•˜κ³ , 정상적인 흐름을 μœ μ§€ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 즉, ν”„λ‘œκ·Έλž¨μ˜ 비정상적인 μ’…λ£Œλ₯Ό λ§‰λŠ” 것에 μ˜ˆμ™Έ 처리의 λͺ©μ μ΄ μžˆμŠ΅λ‹ˆλ‹€. μžλ°”μ—μ„œλŠ” try, catch, finally 블둝을 μ‚¬μš©ν•˜μ—¬ μ˜ˆμ™Έ 처리λ₯Ό κ΅¬ν˜„ν•©λ‹ˆλ‹€.

 

1) try block

→ try 블둝은 μ˜ˆμ™Έκ°€ λ°œμƒν•  수 μžˆλŠ” μ½”λ“œλ₯Ό ν¬ν•¨ν•˜λŠ” λΈ”λ‘μž…λ‹ˆλ‹€. try 블둝 μ•ˆμ—μ„œ μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ ν•΄λ‹Ή μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜λŠ” catch λΈ”λ‘μœΌλ‘œ μ œμ–΄κ°€ μ΄λ™ν•©λ‹ˆλ‹€.

 

2) catch block 

catch 블둝은 νŠΉμ • μ˜ˆμ™Έ νƒ€μž…μ— λŒ€ν•œ 처리 μ½”λ“œλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€. μ—¬λŸ¬ 개의 catch 블둝을 μ‚¬μš©ν•˜μ—¬ λ‹€μ–‘ν•œ μ˜ˆμ™Έ νƒ€μž…μ— λŒ€ν•œ 처리λ₯Ό κ΅¬ν˜„ν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ˜ˆμ™Έκ°€ λ°œμƒν•˜λ©΄ μ μ ˆν•œ catch λΈ”둝이 μ„ νƒλ˜μ–΄ μ‹€ν–‰λ©λ‹ˆλ‹€.

 

3) finally 블둝

finally 블둝은 μ˜ˆμ™Έ λ°œμƒ 여뢀와 관계없이 항상 μ‹€ν–‰λ˜μ–΄μ•Ό ν•˜λŠ” μ½”λ“œλ₯Ό ν¬ν•¨ν•©λ‹ˆλ‹€. finally λΈ”둝은 μ„ νƒμ‚¬ν•­μ΄λ©°, μƒλž΅ν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

 

Try-catch μ½”λ“œ μ˜ˆμ‹œ

더보기

// Example 1
System.out.println(1);

  try { // λŒ€κ΄„ν˜Έ ν•„μˆ˜
       System.out.println(2);
  } catch (Exception e) { // μ˜ˆμ™Έ μ²˜λ¦¬ λΆ€λΆ„μ˜ μ΅œκ³  μ‘°μƒμ΄λΌ λͺ¨λ“  μ˜ˆμ™Έ μ²˜λ¦¬κ°€λŠ₯
       System.out.println(3);
  }
       System.out.println(4);
// κ²°κ³Ό : 1, 2, 4

 

 

더보기

// Example 2
   System.out.println(5);

    try {
          System.out.println(0/0); // μ˜ˆμ™Έ λ°œμƒ
          System.out.println(6); // λ¬΄μ‹œ
    } catch (ArithmeticException ae) { // μ˜ˆμ™Έ μ²˜λ¦¬ -> λ§Œμ•½ μ²˜λ¦¬x? ν”„λ‘œκ·Έλž¨ λΉ„정상 μ’…λ£Œ
          System.out.println(7);
    } 
          System.out.println(8);
// κ²°κ³Ό : 5, 7, 8

 

 


Exception handling is the process of responding to unwanted or unexpected events when a computer program runs.

 

The Try Catch statements allows you to define a block of code to be tested for exceptions (errors) while it is being executed.

 

The finally block is always executed no matter whether there is an exception or not.

 

'Programming > Java' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

23 Annotation  (1) 2024.01.21
22 throw & throws  (0) 2024.01.21
20 Exceptions  (0) 2024.01.21
19 Interface  (0) 2024.01.20
18 Polymorphism  (0) 2024.01.20

λŒ“κΈ€