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

22 throw & throws

by Dowon Kang 2024. 1. 21.

throw와 throwsλŠ” μžλ°”μ—μ„œ μ˜ˆμ™Έ μ²˜λ¦¬μ™€ κ΄€λ ¨λœ ν‚€μ›Œλ“œλ‘œ, μ˜ˆμ™Έλ₯Ό λ‹€λ£¨λŠ” λ° μ‚¬μš©λ©λ‹ˆλ‹€.

 

 

μ˜ˆμ™Έ λ°œμƒμ‹œν‚€κΈ° - throw 

μ˜ˆμ™Έκ°€ λ°œμƒν•œ 상황을 ν˜„μž¬ μœ„μΉ˜μ—μ„œ 직접 μ²˜λ¦¬ν•˜κΈ° μ–΄λ ΅κ±°λ‚˜ μ²˜λ¦¬ν•  수 μ—†λŠ” κ²½μš°μ— throw 문을 μ‚¬μš©ν•˜μ—¬ μ˜ˆμ™Έλ₯Ό λ˜μ§‘λ‹ˆλ‹€. 이것은 μ˜ˆμ™Έλ₯Ό ν˜„μž¬ μœ„μΉ˜μ—μ„œ λ°œμƒμ‹œν‚€λŠ” 것을 μ˜λ―Έν•©λ‹ˆλ‹€. 그리고 이 μ˜ˆμ™ΈλŠ” 호좜 μŠ€νƒμ„ 따라 μƒμœ„ 호좜자둜 μ „νŒŒλ©λ‹ˆλ‹€.

더보기

try {
       Exception e = new Exception("고의둜 λ°œμƒμ‹œν‚΄"); // μ˜ˆμ™Έ ν΄λž˜μŠ€ μƒμ„±
       throw e; // μ˜ˆμ™Έ λ°œμƒμ‹œν‚€κΈ°
         //  throw new Exception("고의둜 λ°œμƒμ‹œν‚΄"); μœ„μ˜ λ‘ μ€„을 ν•œ μ€„λ‘œ
    } catch (Exception e) {
       System.out.println("μ—λŸ¬ λ©”세지 : " + e.getMessage());
       e.printStackTrace();
    }
       System.out.println("ν”„λ‘œκ·Έλž¨ μ •μƒ μ’…λ£Œ");

 

 

μ˜ˆμ™Έ λ˜μ§€κΈ° - throws

throwsλŠ” μžλ°”μ—μ„œ λ©”μ„œλ“œ μ„ μ–ΈλΆ€μ—μ„œ μ‚¬μš©λ˜λ©°, ν•΄λ‹Ή λ©”μ„œλ“œμ—μ„œ λ°œμƒν•  μˆ˜ μžˆλŠ” μ˜ˆμ™Έλ₯Ό λ‚˜μ—΄ν•˜λŠ” λ° μ‚¬μš©λ©λ‹ˆλ‹€. μ΄ ν‚€μ›Œλ“œλŠ” λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” μ½”λ“œμ—μ„œ ν•΄λ‹Ή μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•˜λ„둝 κ°•μ œν•˜λŠ” μ—­ν• μ„ ν•©λ‹ˆλ‹€. μ¦‰, throwsλ₯Ό μ‚¬μš©ν•˜λ©΄ λ©”μ„œλ“œμ—μ„œ μ˜ˆμ™Έλ₯Ό μ§μ ‘ μ²˜λ¦¬ν•˜μ§€ μ•Šκ³ , ν˜ΈμΆœμžμ—κ²Œ μ˜ˆμ™Έ μ²˜λ¦¬λ₯Ό μœ„μž„ν•©λ‹ˆλ‹€.

 

더보기

    try {
            calculate();
        } catch (Exception e) {
            System.out.println("μ˜ˆμ™Έκ°€ λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€: " + e.getMessage());
        }
    }

    public static void calculate() throws Exception {
        try {
            divideByZero();
        } catch (ArithmeticException e) {
            System.out.println("0으둜 λ‚˜λˆ„κΈ° μ˜ˆμ™Έ λ°œμƒ");
            throw e;  // μ˜ˆμ™Έλ₯Ό ν˜ΈμΆœμžμ—κ²Œ λ‹€μ‹œ λ˜μ§
        }
    }

    public static void divideByZero() {
        int dividend = 10;
        int divisor = 0;
        int result = dividend / divisor;
    }


λ©”μ„œλ“œκ°€ μ–΄λ–€ μ˜ˆμ™Έλ₯Ό λ˜μ§ˆ μˆ˜ μžˆλŠ”지 throwsλ₯Ό ν†΅ν•΄ λͺ…μ‹œν•˜λ©΄, ν•΄λ‹Ή λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” μ½”λ“œμ—μ„œλŠ” try-catch λΈ”둝을 μ‚¬μš©ν•˜κ±°λ‚˜, μ˜ˆμ™Έλ₯Ό λ” λ†’은 μˆ˜μ€€μœΌλ‘œ μ „νŒŒν•  μˆ˜ μžˆμŠ΅λ‹ˆλ‹€.

 

throwsλŠ” μ˜ˆμ™Έμ˜ μ²˜λ¦¬λ₯Ό ν˜ΈμΆœμžμ—κ²Œ μœ„μž„ν•¨μœΌλ‘œμ¨ μ½”λ“œμ˜ λͺ¨λ“ˆμ„±κ³Ό κ°€λ…성을 ν–₯μƒμ‹œν‚¬ μˆ˜ μžˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, μ˜ˆμ™Έμ˜ μ„ΈλΆ€ μ‚¬ν•­μ„ λ©”μ„œλ“œ μ‹œκ·Έλ‹ˆμ²˜μ— λͺ…μ‹œν•¨μœΌλ‘œμ¨ ν•΄λ‹Ή λ©”μ„œλ“œλ₯Ό μ‚¬μš©ν•˜λŠ” κ°œλ°œμžμ—κ²Œ μ–΄λ–€ μ˜ˆμ™Έλ₯Ό μ²˜λ¦¬ν•΄μ•Ό ν•˜λŠ”지 μ•Œλ €μ£ΌλŠ” μ—­ν• μ„ ν•©λ‹ˆλ‹€.

 

 

 


When you encounter an exceptional condition that you want to handle at a higher level or in a different part of the program, you can use the throw statement.

 

The ‘throws’ keyword used to pass an exception to another location for handling.

 

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

24 Enum  (0) 2024.01.21
23 Annotation  (1) 2024.01.21
21 Exception handling  (0) 2024.01.21
20 Exceptions  (0) 2024.01.21
19 Interface  (0) 2024.01.20

λŒ“κΈ€