자바의 예외에는 일반 예외와 실행 예외가 있다.
각각 Checked Exception 과 Unchecked Exception 으로 부를 수 있다.
runtimeException을 상속받는 애들은 uncheked 이고 아니면 checked이다.
public static void main(String[] args){
Integer[] nums = {1, 2, 3, 4, 5};
try {
// 예외가 있을 수도 있는 코드
for (int i = 0; i < 6; i++) {
System.out.println(nums[i]);
}
} catch (ArrayIndexOutOfBoundsException e) {
// else if 처럼 낮은 부분부터 최상위로 조건을 주면서 올라온다.
System.out.println("배열의 크기가 다릅니다.");
} catch (Exception e) {
System.out.println("예상 못한 예외처리를 함");
} finally {
System.out.println("프로그램 정상 종료");
}
}
여기서 궁금해야 할 것은 finally 를 왜써야하고 언제 쓰는가이다.
그냥 try catch를 걸게되고 Exception을 마지막에 catch에 해놓으면 예외처리가 다되는데
혹여나 Exception을 걸지않은 상태로 우리가 예상한 exception만 설정 해놓고,
예외가 터지더라도 무조건 실행되야 할 경우이거나, 지금까지 실행한 정보들을 따로 저장하는 로직등을
넣을 때 쓰인다.
인터페이스는 바로 생성이 불가하다.
하지만 인터페이스를 쓰려면 클래스를 생성해서 implements 해줘야 쓸 수가 있는데,
단 한번만 쓰일 용도로 쓰일 인터페이스 경우에 굳이 클래스를 생성해서 저장하고 할 필요없이
익명클래스라는 것으로 생성 당시에 오버라이드 시켜주는걸 말한다.
interface x1 = new interface() {
@Override
public 자료형 메소드명() {
return 자료형;
}
};