Java 파트10-1. 예외 클래스

1. 시작하기 전에


  • 에러 : 컴퓨터 하드웨어 관련 고장으로 응용프로그램 실행 오류가 발생하는 것
  • 예외 : 그 외 프로그램 자체에서 발생하는 오류
    • 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류
    • 예외 처리 프로그램 통해 정상 실행 상태 유지 가능
    • 예외 발생 가능성이 높은 코드를 컴파일할 때 컴파일러는 예외 처리 유무를 확인


2. 예외와 예외 클래스


일반 예외 (exception)

  • 컴파일러 체크 예외
  • 자바 소스 컴파일 과정에서 해당 예외 처리 코드가 있는지 검사하게 됨
  • 예외의 상속 관계

그림1

실행 예외 (runtime exception)

  • 컴파일러 넌 체크 예외
  • 실행 시 예측할 수 없이 갑자기 발생하기에 컴파일 과정에서 예외처리코드 검사하지 않음
  • 실행 예외는 개발자의 경험에 의해서 예외 처리 코드를 작성해야 함

그림2


3. 실행 예외


NullPointerException

  • 가장 빈번하게 발생하는 실행 예외
  • 객체 참조가 없는 상태의 참조 변수로 객체 접근 연산자 도트를 사용할 경우 발생

ArrayIndexOutOfBoundsException

  • 배열에서 인덱스 범위를 초과할 경우

NumberFormatException

  • 숫자가 아닌 문자열을 숫자로 변환하는 경우

그림3

ClassCastException

  • 상위 및 하위 클래스 그리고 구현 클래스와 인터페이스 간 타입 변환이 가능한데 이 관계에서 어긋날 경우 발생

그림4


4. 정리하기


  • 예외 : 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류, 예외 발생 시 프로그램이 곧바로 종료되나, 예외 처리를 통해 정상 실행상태를 유지할 수 있음
  • 예외 클래스 : 자바에서는 예외를 클래스로 관리함. 프로그램 실행 중 예외가 발생하면 해당 예외 클래스로 객체를 생성하고 예외 처리 코드에서 예외 객체를 이용할 수 있도록 해줌
  • 일반 예외 : 컴파일러 체크 예외, 프로그램 실행 시 예외 발생 가능성이 높기 때문에 자바 소스 컴파일 과정에서 해당 예외 처리 코드가 있는지 검사함
  • 실행 예외 : 컴파일러 넌 체크 예외, 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일 과정에서 예외 처리 코드 존재 여부를 검사하지 않음



본 포스팅은 ‘혼자 공부하는 자바’를 읽고 공부한 내용을 바탕으로 작성하였습니다.


© 2021. By Backtony