예외(Execption)

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

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

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

 

일반 예외(exception)

- 컴파일러 체크 예외

- 자바 소스 컴파일 과정에서 해당 예외 처리 코드가 있는지 검사하게 됨

 

실행 예외(runtime exception)

- 컴파일러 넌 체크 예외

- 실행 시 예측할수 없이 갑자기 발생하기에 컴파일 과정에서 예외처리코드 검사하지 않음

 

try-catch-finally 블록

- 생성자 및 메소드 내부에서 작성되어 일반예외와 실행예외가 발생할 경우 예외 처리 가능하게 함

try {

 

   // 예외 발생가능 코드

 

} catch(예외클래스 e) {

 

  예외 처리

 

} finally {

 

  항상 실행;

 

}

- try 블록에는 예외 발생 가능 코드가 위치

- try 블록 코드가 예외발생 없이 정상실행되면 catch 블록의 코드는 실행되지 않고 finally 블록의 코드를 실행

- 예외 발생한다면 catch 블록으로 이동 예외 처리 코드 실행이후 finally 블록 코드 실행

- finally 블록은 생략 가능하며, 예외와 무관하게 항상 실행할 내용이 있을 경우에만 작성

 

다중 catch

- 발생하는 예외별로 예외 처리 코드를 다르게 하는 다중 catch 블록

- catch 블록의 예외 클래스 타입은 try 블록에서 발생된 예외의 종류 말함

- try 블록에서 해당 타입 예외가 발생하면 catch 블록을 실행

- 다중 catch 블록 작성 시 상위 예외 클래스가 하위 예외 클래스보다 아래에 위치해야 함

 

throws 키워드

- 메소드 선언부 끝에 작성되어 메소드에서 처리하지 않은 예외를 호출한 곳으로 넘기는 역할

- throws 키워드 뒤에는 떠넘길 예외 클래스를 쉼표로 구분하여 나열

리턴타입 메소드이름(매개변수,...) throws 예외클래스1, 예외클래스2 ... {

 

}

리턴타입 메소드이름(매개변수,...) throws Exception {

 

}

 

 

 

혼자 공부하는 자바<한빛 미디어> 신용권 지음

'Java' 카테고리의 다른 글

이클립스에서 깃허브로 프로젝트 올리는 법  (0) 2021.06.01
인터페이스  (0) 2021.01.11
인터페이스  (0) 2021.01.11
추상 클래스  (0) 2021.01.11
타입 변환과 다형성  (0) 2021.01.11

+ Recent posts