π§© νμ΅ λ¨μ : μμΈμ²λ¦¬(Exception Handling)
π νμ΅ λμ : <Javaμ μ μ 3ν>(λ¨κΆ μ± μ )
βμμΈμ²λ¦¬ μμ μμ© νμ΅ μλ£(2022.01.22)
μμ©A. μμΈ λλμ§κΈ°(exception re-throwing) β
μμΈμ²λ¦¬ λμμ΄ λ§μ κ²½μ° μΌλΆλ μ체μ μΌλ‘ try-catch ν΅ν΄ λ°λ‘μ‘κ³ , λλ¨Έμ§λ throwλ‘ λμ§ μ μλ€. λλ νμμ λ°λΌ λ¨ νλμ μμΈμ λν΄μλ μμΈκ° λ°μν λ©μλ/νΈμΆν λ©μλ κ°κ°μμ μ²λ¦¬νλλ‘ λ§λ€ μ μλ€. μ¦ μμͺ½ λͺ¨λμμ λ°λ‘μ‘μμΌ ν λ μ°μΈλ€.
μ²λ¦¬ ν μμΈλ₯Ό μΈμμ μΌλ‘ λ€μ λ°μμν€λ λ°©λ²μ λ€μκ³Ό κ°λ€: throw e
package com.reminder.exercises;
public class Ex01_442 {
public static void main(String[] args) {
try {
methodA();
} catch (Exception e) {
System.out.println("mainλ©μλμμ μμΈμ²λ¦¬ μλ£");
e.printStackTrace();
}
}
static void methodA() throws Exception {
try {
throw new Exception();
} catch (Exception e) {
System.out.println("methodAμμ μμΈμ²λ¦¬ μλ£");
throw e;
}
}
}
μμ©B. μ°κ²°λ μμΈ(chained exception) β
μμΈ μμΈ(cause exception)λΌλ κ°λ μ΄ λ±μ₯νλ€. AλΌλ μμΈκ° BλΌλ μμΈλ₯Ό λ°μμν¨λ€λ©΄ Aλ Bμ μμΈ μμΈμ΄λ€.
} catch (AException a) {
γγBException be = new BException("B μν μ€ μμΈ λ°μ");
γγb.initCause(a);
γγthrow b;
- AExceptionμ μμΈ μμΈλ‘ μΌλ BException λ°μ ꡬ문μ μμ κ°λ€.
- aλ₯Ό bμ μμΈ μμΈλ‘ λ±λ‘νλ€. μ΄λ Exceptionμ μ‘°μμΈ Throwable.classμ μ μλ initCause() λ©μλκ° μ°μΈλ€: b.initCause(a);
- λ€μ μμΈλ₯Ό λμ§λ€: throw b;
- μμΈ μμΈλ‘ λ±λ‘ν΄ λ€μ μμΈλ₯Ό λμ§λ©΄, μ¬λ¬ μμΈλ₯Ό νλμ μμΈλ‘ λ¬Άμ΄μ λ€λ£° μ μκ² λλ€.
throw new RuntimeException(new MemoryException("λ©λͺ¨λ¦¬κ° λΆμ‘±ν©λλ€."));
- λμκ° checked exceptionμ unchecked exceptionμΌλ‘ λ°κΏ μΈ μλ μλ€.
'Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[JAVA/2nd Review] Part 1. κΈ°μ΄ λ¬Έλ² (0) | 2022.01.31 |
---|---|
[μλ°μ μ μ] Ch 9. API μμ μμ© νμ΅ (0) | 2022.01.23 |
[μλ°μ μ μ] Ch 8. μμΈμ²λ¦¬ μ°μ΅λ¬Έμ νμ΄ (0) | 2022.01.22 |
[μλ°μ μ μ] Ch 7. OOP II μμ μμ© νμ΅ (0) | 2022.01.22 |
[μλ°μ μ μ] Ch 7. OOP II μ°μ΅λ¬Έμ νμ΄ (0) | 2022.01.16 |