TIL. 예외처리, 익명클래스

hyuko·2023년 1월 22일
0

Java

목록 보기
26/26

예외처리


자바의 예외에는 일반 예외와 실행 예외가 있다.
각각 Checked Exception 과 Unchecked Exception 으로 부를 수 있다.
  • 실행 예외는 굳이 개발자가 예외처리를 직접 하지 않아도 된다.
  • 일반 예외는 개발자가 꼭 예외처리를 해줘야 한다.

Exception 은 기본적으로 Checked 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("프로그램 정상 종료");
    }

}
  • 여기서 try는 예외가 있을 수도 있는 코드를 집어 넣어준다.
  • 만약 오류가 발생을 하면 1차적으로 array오류인 첫번째로 옮겨가고
  • 그 오류가 아닐 경우 Exception에서 다잡아 준다.
  • finally는 무조건 실행되는 구간이다.

여기서 궁금해야 할 것은 finally 를 왜써야하고 언제 쓰는가이다.
그냥 try catch를 걸게되고 Exception을 마지막에 catch에 해놓으면 예외처리가 다되는데
혹여나 Exception을 걸지않은 상태로 우리가 예상한 exception만 설정 해놓고,
예외가 터지더라도 무조건 실행되야 할 경우이거나, 지금까지 실행한 정보들을 따로 저장하는 로직등을
넣을 때 쓰인다.


익명클래스

인터페이스는 바로 생성이 불가하다.
하지만 인터페이스를 쓰려면 클래스를 생성해서 implements 해줘야 쓸 수가 있는데,
단 한번만 쓰일 용도로 쓰일 인터페이스 경우에 굳이 클래스를 생성해서 저장하고 할 필요없이
익명클래스라는 것으로 생성 당시에 오버라이드 시켜주는걸 말한다.

interface x1 = new interface() {
	@Override
    public 자료형 메소드명() {
    	return 자료형;
    }
};
  • 특징으로는 이 익명 클래스는 저장이 되는 클래스가 아니기 때문에
    딱 한번 그 클래스에서 인터페이스가 생성될 당시에만 쓸수가 있다.
    익명클래스는 추상클래스도 동일하게 사용이 가능하다.
profile
백엔드 개발자 준비중

0개의 댓글