공hannah부
예외처리(Exception Handling) 본문
예외 처리 코드(try-catch-finally)
- try 블록
예상되는 문제를 try 블록으로 설정한다.
try{
예외발생 가능 코드
}
- catch 블록
catch 블록은 여러개 존재할 수 있으며, 최상위 예외는 가장 마지막에 위치시킨다.
catch(Exception e){
예외를 처리하는 코드
}
-finally 블록
finally 블록은 예외 발생과 전달 여부에 관계없이 항상 실행되는 코드블록이다. 생략 가능하다.
finally{
항상 실행
}
예외 전달하기(throws)
- catch와 달리 전달만 해서 예외 떠넘기기 라고도 한다.
- 메소드 선언부 끝에 작성한다.
리턴타입 메소드명(매개변수,...) throws 예외클래스1, 예외클래스2,...{
}
사용자 정의 예외
- 자바 표준 API에서 제공하지 않는 예외는 개발자가 만들어서 사용해야한다.
- Exception 클래스나 RuntimeException 클래스를 상속하여 만든다.
public class XXXException extends[Exception|RuntimeException]{
public XXXException(){}
public XXXException(String message{
super(message);
}
}
예외 정보 얻기
- getMessage()
예외를 발생시킬 때 생성자 매개값으로 메세지 리턴한다.
전달한 메세지는 catch()절에서 활용한다.
- printStackTrace()
예외 발생 코드를 추적한 내용을 모두 콘솔에 출력한다.
정리
try{
//모든 조건을 if-then-else로 체크하기 어렵거나
//문제가 발생할 수 있는 의심스로운 코드는 try로
}catch(가장 구체적인 class e){
//처리코드
}catch(점진적으로 추상적인 class e){
//처리코드
}catch(마지막은 가장 추상적인 클래스 Exception e){
//처리코드
}finally{
//예외의 발생 여부에 관계없이 공통적으로 처리해야하는 마무리 코드는 여기에
}
'공부 > JAVA' 카테고리의 다른 글
Object / Wrapper 클래스 (0) | 2023.05.28 |
---|---|
제네릭(Generic) (0) | 2023.05.21 |
캐스팅 / instanceof / 다형성 / 추상클래스, 추상메소드 (0) | 2023.05.06 |
JAVA 공부 3일차 - 자바 핵심 개념 정리1 (0) | 2023.03.10 |
JAVA 공부 2일차 - 입출력 익히기 (0) | 2023.03.08 |