<Java> 12. 예외처리

정지민·2023년 11월 3일

Java

목록 보기
8/12

예외

비정상적인 상황

  1. 정수를 0으로 나누는경우
  2. 잘못된 캐스팅 등...

예외객체

예외도 하나의 객체로 표현됨

예외 클래스

java.lang.Throwable로부터 파생됨
생성자, 멤버 필드, 메소드 등을 가질 수 있음
throws(던져질) 수 있다 -> 일반 객체와 차이점

Exception 클래스

상대적으로 덜 심각한 예외
보통 예외라 불림

Unchecked Exception

필요시 예외처리
RuntimeException 이하 클래스

  • ArithmeticException : 0으로 나눔
  • ArrayIndexOutOfBoundsException : 잘못된 배열 첨자 사용
  • NegativeArraySizeException : 배열 선언시 할당크기 음수인 경우
  • ClassCastException : 잘못된 형변환 사용
  • NullPointerException : null값 참조변수로 멤버 접근시
  • NumberFormatException : 일치하지 않는 자료형의 숫자로 변환시
  • java.util.InputMismatchException : 입력 받고자 하는 자료형과 입력된 값의 자료형이 다른 경우
  • java.io.IOExcaption : 입출력 실패 -> (오류처리 필수)

Checked Exception

반드시 예외처리 필요

Error 클래스

상대적으로 더 심각한 예외
보통 에러라 불림 (예외처리 불가)

예외 메세지 표시 방법

Throwable 클래스의 멤버 메서드

  • String getMessage() : 문자열 에러 메세지 반환
  • void printStackTrace() : 예외 발생 원인과 경로 추적해 표시 (구체적)

예외 처리 방법

  • try ~ catch문 : 예외 발생시 catch문으로 처리 후 계속 진행
try{ //1개
	예외 발생 가능성있는 실행문
}
catch{ //1개 이상
	예외 처리문
}
finally{ //선택적 사용
	예외 발생 여부와 상관없이 무조건 실행
}
  • throws문
    - 현재 메서드를 호출한 측으로 예외 객체를 전달
    메서드 구현부에 기술
    - 메서드 이름과 { 사이에 전달할 예외 클래스명과 함께 기술

예외 강제 발생

throw문 - 지정한 예외 객체에 대해 예외처리 강제 실행 (throws와 다름)
throw <예외객체>;
throw new <예외클래스생성자>;

사용자 정의 예외

  • 프로그래머가 직접 필요한 예외 클래스 만듦
  • 보통 Exception 클래스(Exception의 서브 클래스)로부터 상속 받아 정의
  • 관례적으로 ~~~Exception이란 이름 사용
  • 보통 멤버는 추가 안해도 되지만 예외 정보 설정 위해 생성자 구현

0개의 댓글