π‘ μ€λ₯(Error)μ μμΈ(Exception)
μ€λ₯: μμ€ν μμμ νλ‘κ·Έλ¨μ μ¬κ°ν λ¬Έμ κ° λ°μνμ¬ μ€νμ€μΈ νλ‘κ·Έλ¨μ΄ μ’ λ£λλ κ²μ λ§νλ©° κ°λ°μκ° λ―Έλ¦¬ μμΈ‘νκ±°λ μ½λλ‘ μ²λ¦¬νλ κ²μ΄ λΆκ°λ₯ ν κ²½μ°λ₯Ό λ§νλ€.
(ex: JVM μλ¬, μ μ , μ»΄ν¨ν° μ체 νλμ¨μ΄μ μΈ λ¬Έμ λ±)μμΈ: μ€λ₯μ λ§μ°¬κ°μ§λ‘ μ€νμ€μΈ νλ‘κ·Έλ¨μ μ’ λ£μν€λ κ²μ΄ μΌλ°μ μ΄μ§λ§ λ°μν μ μλ μν©μ κ°λ°μκ° λ―Έλ¦¬ μμΈ‘νκ³ μ²λ¦¬ν μ μλ λ―Έμ½ν μ€λ₯λ₯Ό λ§νλ€.
μμΈ μν©μ κ²½μ°λ κ°λ°μκ° μ μ ν μ²λ¦¬νμ¬ μ½λμ νλ¦μ 컨νΈλ‘€(λΉμ μμ μΈ μ’ λ£λ₯Ό ν μλ μκ³ κ·Έλ μ§ μκ² ν μλ μκ²) ν μ μλ€.
π‘ μ€λ₯λ μμΈλ μ¬μ©μμκ² μ’μ§ μμ μ¬μ© κ²½νμ μ 곡ν μ μλ€. νμ§λ§ 미리 μμΈ‘νκ³ μ»¨νΈλ‘€ ν μ μλ μμΈλ₯Ό μ²λ¦¬ν¨μΌλ‘μ¨ νλ‘κ·Έλ¨μ΄ μμμΉ λͺ»ν μν©μ λ΄μ°©νμ§ μλλ‘ μ½λμ μμ μ±κ³Ό μ λ’°μ±μ λμ¬ μ΄λ₯Ό λ―Έμ°μ λ°©μ§νκ±°λ μλν λ°©ν₯μΌλ‘ 컨νΈλ‘€ ν μ μλ€.
λν κ°λ° μμλ λλ²κΉ μ μ©μ΄νκ² ν΄μ μμΈκ° λ°μν μμΈκ³Ό μμΉλ μ½κ² νμ ν μ μμ΄ μ©μ΄νλ€.
0μΌλ‘ λλλ κ²½μ° λ°μ
int dividend = 3;
System.out.println(dividend / 0);
λ°°μ΄μ indexλ²μλ₯Ό λμ΄μ μ°Έμ‘°νλ κ²½μ° λ°μ
int[] intArr = new int[0];
System.out.println(intArr[1]);
NullPointerException
- μΈμ€ν΄μ€κ° μ°Έμ‘°λμ§ μμ μν(Null)λ‘ μΈμ€ν΄μ€μ μ κ·Όνλ κ²½μ° λ°μ
```java
int[] intArr = null;
System.out.println(intArr[0]);
```
ClassCastException
νλ³ν(Castμ°μ°μ μ¬μ©) μ μλ£νμ λ¬Έμ κ° μμ λ λ°μ
Object obj = new String("hello");
int num = (Integer)obj;
λ°°μ΄ ν¬κΈ°λ₯Ό μμλ‘ μ§μ ν κ²½μ° λ°μ
int[] intArr = new int[-1];
π‘ Exceptionμ΄ λ°μνλ λ©μλ(λλ μμ±μ)λ₯Ό νΈμΆν μμ λ©μλμκ² μ²λ¦¬λ₯Ό μμνλ λ°©μμ΄λ€.
π‘ λ°μν Exceptionμ μ§μ μ²λ¦¬νλ λ°©μμ΄λ€.
try λΈλ
catchλΈλ
finally λΈλ
try (BufferedReader in = new BufferedReader(new FileReader("test.dat"));){
String s;
while((s = in.readLine()) != null){
System.out.println(s);
}
} catch (FileNotFoundException/* | EOFException*/ e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}