Published 2022. 1. 26. 12:33

예외(Exception) 

- 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류

- 예외 처리 프로그램을 통해 정상 실행상태를 유지가능

- 예외 발생 가능성이 높은 코드를 컴파일할 때 컴파일러는 예외처리 유무를 확인

 

 

예외는 두가지 종류가 있다.

 

1. 일반 예외

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

 

2. 실행 예외 (runtime exception)

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

 

실행 예외 종류

1. NullPointerException

- 가장 빈번하게 발생하는 실행 예외

- 객체 참조가 없는 상태의 참조 변수로 객체 접근 연산자 도트를 사용할 경우 발생한다.

es) String str = null; 선언을 하고 str.length(); 여기서 .은 객체로 접근하라는 뜻. 문제는 str이 어떤 객체를 참조하지 않고 null을 가지고 있으면 오류가 발생한다. 왜? 객체가 없기 때문에

 

2. ArrayIndexOutOfBoundsException

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

 

ex) int[] arr = {1, 2, 3}; int result = arr[0] + arr[3];
이 배열의 인덱스는 2까진데 3이 들어오니까 이와같은 오류가 발생함

 

3. NumberFormatException

- 문자열을 숫자로 변환하는 경우

리턴타입 메소드이름(매개 변수) 설명
int Interger.parseInt(String s) 주어진 문자열을 정수로 변환해서 리턴
double Double.parseDouble(String s) 주어진 문자열을 실수로 변환해서 리턴

 

4. ClassCastException

- 상위 및 하위 클래스 그리고 구현 클래스와 인터페이스 간 타입 변환 가능

- 위 관계가 아닌 경우 ClassCastException 발생

'IT > Java' 카테고리의 다른 글

[Java] Wrapper(포장) 클래스  (0) 2022.01.30
[Java] 예외 처리  (0) 2022.01.26
[Java] 상속, 오버라이딩, final 키워드  (0) 2022.01.21
[Java] 필드선언, 필드 사용  (0) 2022.01.17
[Java] 객체 지향 프로그래밍  (0) 2022.01.17
복사했습니다!