μμΈ ν΄λμ€?
- μ€νμ€μΈ νλ‘κ·Έλ¨μ΄ μλνμ§ μμ λμμ νκ±°λ νλ‘κ·Έλ¨μ΄ μ€μ§λλ κ²μ λ§κΈ° μν΄ μμΈ μ²λ¦¬λ₯Ό νλ€.
- νλ‘κ·Έλ¨μμ μ²λ¦¬νλ μμΈ ν΄λμ€μ μ΅μμ ν΄λμ€λ Exception ν΄λμ€ μ΄λ€.
μμ€ν μ€λ₯ & μμΈ
1. μμ€ν μ€λ₯(Error) : κ°λ°μκ° μ μ΄ ν μ μμ
2. μμΈ(Exception) : νλ‘κ·Έλ¨μμ μ μ΄ κ°λ₯ (try ~ catch ~ finally
λΈλ‘)
μ) νλ‘κ·Έλ¨μμ νμΌμ μ½μ μ μλ κ²½μ°, λ€νΈμν¬λ‘ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°κ³ μ νλλ° λ€νΈμν¬κ° μ°κ²°μ΄ μλ κ²½μ°, λ°° μ΄ κ°μ μΆλ ₯νκ³ μ νλλ° λ°°μ΄ μμκ° μλ κ²½μ° λ±
ArrayIndexOutOfBoundException
- λ°°μ΄ λ²μ μ΄κ³Όμ λν μμΈ μ²λ¦¬
public class Main {
public static void main(String[] args) {
int[] arr = new int[5];
try {
for(int i = 0; i <= 5; i++) {
arr[i] = i;
System.out.println(arr[i]);
}
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println(e);
System.out.println("μμΈ μ²λ¦¬ λΆλΆ");
}
System.out.println("νλ‘κ·Έλ¨ μ μ μ’
λ£ ...");
}
}
FileNotFoundException
- μ‘΄μ¬νμ§ μλ νμΌμ μ΄λ €κ³ μλ ν λ λ°μ
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
try {
BufferedReader br = new BufferedReader(new FileReader("μλ νμΌ"));
br.readLine();
br.close();
} catch (IOException e) {
System.out.println(e);
System.out.println("νμΌμ΄ μμ΅λλ€.");
}
}
}
NullPointerException
- μ°Έμ‘°νκ³ μλ μ£Όμλ₯Ό μ κ·Ό νμΌλ κ°μ΄ μλ κ²½μ°
NullPointerExceptionμ κ°κΈμ try ~ catch ~ finally μ¬μ©νμ§ λ§ κ².
ν΄λΉ μ€λ₯λ μ‘μμ£Όλ κ²μ΄ μ’μ.
public class Main {
public static void main(String[] args) {
Test test = null;
try {
String testStr = test.name;
System.out.println(test);
} catch(NullPointerException e) {
System.out.println("μ°Έμ‘°νκ³ μλ κ³³μ κ°μ΄ μμ΅λλ€.");
}
}
}
class Test {
String name = "κ³°λμ΄μ¬μ‘μ¬";
}
ArithmeticException
- μ°μ° μ€λ₯
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int rst = 0;
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("λλμ
μ
λ ₯ : ");
int a = sc.nextInt();
int b = sc.nextInt();
try {
rst = a / b;
} catch(ArithmeticException e) {
System.out.println("0μΌλ‘ λλ μ μμ΅λλ€. λ€μ μ
λ ₯νμΈμ.");
continue;
}
System.out.println("κ²°κ³Όλ " + rst);
break;
}
}
}
finally
- νλ‘κ·Έλ¨ μ€ν λμ€ μμΈκ° λ°μν κ°λ₯μ±μ΄ μλ μ½λμ try ꡬ문μ μμ±ν©λλ€.
- μ΄ λ, μμΈκ° λ°μνλ©΄ catch ꡬ문μΌλ‘ μ§ννκ³ κ·Έλ μ§ μμΌλ©΄ μλ μ½λκ° μ€ν λ©λλ€.
- μ΄ κ²½μ°, μμΈ μ¬λΆ μκ΄μμ΄ νμ μ€νλμ΄μΌ ν κ΅¬λ¬Έμ΄ μλ€λ©΄ finallyλ‘ μ²λ¦¬ ν μ μμ΅λλ€.
import java.io.FileWriter;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
FileWriter f = null;
try {
f = new FileWriter("test.txt");
f.write("test");
} catch(IOException e) {
e.printStackTrace();
} finally {
if(f != null) {
try {
f.close();
} catch(IOException e) {
e.printStackTrace();
}
}
}
}
}
μμΈ μ²λ¦¬ 미루기
- ν΄λΉ λ©μλ λ΄μμ λ°μν μμΈ μ²λ¦¬μ λν μ± μμ λ©μλλ₯Ό νΈμΆν μͺ½μΌλ‘ λ λκΉ
public class Main {
public static void main(String[] args) {
IOSample test = new IOSample( );
try{
test.input();
test.output();
} catch (IOException e) {
e.printStackTrace();
} catch (ArrayIndexOutOfBoundsException e) {
e.printStackTrace();
}
}
}
public class IOSample {
private int num;
public void input() throws IOException {
num = System.in.read();
}
public void output() {
System.out.println(num);
}
}
μμΈ μ²λ¦¬ λμ§κΈ°
- μνλ 쑰건 μν©μμ νμν κ²½μ° μμΈ κ°μ²΄λ₯Ό μμ±μν€λ©΄μ μμΈλ₯Ό λ°μμν¬ μ μμ΅λλ€.
import java.io.IOException;
public class Main {
public static void main(String[] args) {
ThrowEx ex = new ThrowEx();
ex.printStr(5);
}
}
class ThrowEx {
String str = null;
public void printStr(int cnt) {
if(str == null) {
System.out.println("strμ΄ null μ
λλ€.");
throw new NullPointerException();
}
for(int i = 0; i < cnt; i++) {
System.out.println(str);
}
}
}
'ποΈ Backend > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μλ°(Java) - μ€νΈλ¦Ό(Stream) (0) | 2023.02.08 |
---|---|
μλ°(Java) - λλ€(Lambda) (0) | 2023.02.08 |
μλ°(Java) - Thread(λ©ν° μ€λ λ) 2 - RPG κ²μ λ§λ€κΈ° (1) | 2023.02.07 |
μλ°(Java) - Thread(λ©ν° μ€λ λ) (0) | 2023.02.02 |
μλ°(Java) - 컬λ μ νλ μμν¬(6) (Stack)LIFO, (Queue)FIFO (1) | 2023.02.02 |