1. ๊ฐ๋ณ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
Exception ํด๋์ค๋ ๋ชจ๋ ์์ธ๋ค์ ์กฐ์ ํด๋์ค ์ด๋ค. ๊ทธ๋์ ๋ชจ๋ ์์ธ๋ฅผ ๋คํ์ฑ์ ์๋ฆฌ์ ์ํด ๋ค ๋ฐ์ ์ ์์๋ ๊ฒ์ด๋ค.
catch์ () ์์ ์์ธ๋ณ๋ก ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ฃผ๋ฉด, ํด๋น ์์ธ๊ฐ ๋ฐ์ ํ์ ์์๋ง ๋ฐ๋ํ๋ ์์ธ ์ฒ๋ฆฌ ๊ตฌ๋ฌธ์ ๋ง๋ค ์ ์๋ค.
// ๋ฐฐ์ด ์ธ๋ฑ์ค๋ฅผ ๋ฒ์ด๋ ๊ณณ์ ๋ํ ์์ค ์คํ์ ํ ๊ฒฝ์ฐ์ ์์ธ์ฒ๋ฆฌ๋ฌธ,
// ์๋ชป๋ ํ๋ณํ์ด ์ผ์ด๋ฌ์ ๊ฒฝ์ฐ์ ์์ธ์ฒ๋ฆฌ๋ฌธ์ ๋ฐ๋ก ๋์๋ค.
// ๋งจ ๋ง์ง๋ง์ ๋๋จธ์ง ์์ธ๋ค์ ๋ํ ์ผ๊ด ์ฒ๋ฆฌ์ด๋ค.
catch (ArrayIndexOutOfBoundsException e){
System.out.println("์ธ๋ฑ์ค๋ฅผ ์๋ชป ์ค์ ํ์ด์.");
} catch (ClassCastException e) {
System.out.println("์๋ชป๋ ํ ๋ณํ ์
๋๋ค.");
} catch (Exception e) {
System.out.println("๊ทธ ์ธ์ ๋ชจ๋ ์๋ฌ๋ ์ฌ๊ธฐ์ ์ฒ๋ฆฌ๊ฐ ๋ผ์.");
e.printStackTrace();
}
2. ์์ธ 2๊ฐ ์ด์ ๋ฌถ์ด์ ์์ธ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
// ์ซ์ ๊ณ์ฐ ์ค๋ฅ ํน์ ๋ฐฐ์ด ์ธ๋ฑ์ค ๋ฐ์ ๊ฐ์ ๋ํ ์ฝ๋ ์คํ ์ค๋ฅ์ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํ ๋ฒ์ ํ๋ค.
// ๋ ์ค๋ฅ ์ค ํ๋๊ฐ ๋ํ๋๋ฉด "๋ญ๊ฐ ์ค์๋ฅผ ํ์
จ๋ค์"๋ผ๋ ๋ฌธ์ฅ์ด ๋ฌ๋ค.
catch (ArithmeticException | ArrayIndexOutOfBoundsException e){
System.out.println("๋ญ๊ฐ ์ค์๋ฅผ ํ์
จ๋ค์.");
}
3. ์ค์ค๋ก ํด๋ณด๊ธฐ
public class Catch_myself {
public static void main(String[] args) {
try {
// int[] arr = new int[3];
// arr[5] = 2400;
String s = null;
System.out.println(s.toLowerCase());
} catch(ArrayIndexOutOfBoundsException e){
System.out.println("์ธ๋ฑ์ค ๋ฐ์ ๋๋ฏธ ๊ฐ์์ ๋ญ๊ฐ ์คํํ๋ ค๊ณ ํจ.");
} catch (NullPointerException e) {
System.out.println("null ๊ฐ์ ๋ํ ์คํ");
} catch (Exception e){
System.out.println("๋
ผ๋ฆฌ์ ์ผ๋ก ์๋ชป๋ ๋ฌธ์ฅ ์คํ / ์ค๋ฅ ์ข
๋ฅ: " + e.getMessage());
e.printStackTrace();
}
}
}
0