예외처리

오가람·2023년 1월 3일

예외처리

프로그램 오류

error
-프로그램 수행 시 치명적 상황이 발생하여 비정상 종료 상황이 발생한 것, 프로그램 에러라고도 함

Exception

  • 소스코드로 해결 가능한 에러

오류의 종류

  1. 컴파일 에러(개발자 실수) : 프로그램의 실행을 막는 소스 코드상의 문법 에러. 소스 코드 수정으로 해결

  2. 런타임 에러 : 프로그램 실행 중 발생하는 에러. 주로 if문 사용으로 에러 처리

  3. 시스템 에러 : 컴퓨터 오작동으로 인한 에러, 소스 코드 수정으로 해결 불가 -> 버그

<예외 클래스 계층 구조>
Exception과 Error 클래스 모두 Object 클래스의 자손이며 모든 예외의 최고 조상은 Exception 클래스
반드시 예외 처리해야 하는 Checked Exception과 해주지 않아도 되는 Unchecked Exception으로 나뉨

Unchecked Exception
확인 굳이 안해도 되는 예외 : 선택적으로 예외처리

Checked Exception
확인을 꼭 해야만하는예외 : 예외처리 필수

try~catch문을 이용하여 예외 처리

try : 예외가 발생할 것 같은 코드 수행을 시도하다
-> 수행중 예외 발생시, 예외 객체가 던져짐(throw)

catch(던진것을 받다) : try에서 던져진 예외를 잡아서 처리 -> 예외를 잡아 처리했기 때문에
프로그램이 종료되지 않음

finally : Exception 발생 여부와 관계없이 꼭 처리해야 하는 로직 기술

Exception 처리를 호출한 메소드에게 위임

  • 메소드 선언시 throws Exception명을 추가하여 호출한 상위 메소드에게 처리 위임
  • 계속 위임하면 main() 메소드까지 위임하게 되고
    main() 메소드에서도 처리되지 않는 경우 프로그램이 비정상 종료됨.

<Exception과 오버라이딩>

오버라이딩: 상속받은 메서드를 자식이 재정의

성립조건

  • 메서드명, 매개변수, 반환형 동일
  • 접근제한자 같거나 더 넓은 범위
  • 예외의 범위는 같거나 더 좁게

Exception 발생하는 곳에서 throw new 예외클래스명()으로 발생

profile
개발자준비생

0개의 댓글