안녕하세요 알통몬입니다. 공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!! 포스팅 내용이 찾아주신 분들께 도움이 되길 바라며 더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^
|
예외 정보 얻기
모든 예외 객체는 Exception 클래스를 상속하기 때문에 Exception이 가지고 있는 메서드들을
모든 예외 객체에서 호출할 수 있습니다.
가장 많이 사용되는 메서드는 getMessage() 와 printStackTrace() 입니다.
예외를 발생시킬 때 아래와 같이 String 타입의 메세지를 갖는 생성자를 이용하였다면
메세지는 자동적으로 예외 객체 내부에 저장됩니다.
throws new XXXException("예외 메세지");
예외 메세지 내용에는 예외가 발생한 이유에 대한 간단한 설명이 포함됩니다.
좀 더 상세한 원인을 세분화하기 위해 예외 코드를 포함하기도 합니다.
예를 들어 데이터베이스에서 발생한 오류들은 예외 코드가 예외 메세지로 전달됩니다.
예외 메세지는 아래와 같은 catch 블록에서 getMessage() 메서드의 리턴값으로 얻을 수 있음
} catch(Exception e) {
String message = e.getMessage();
}
printStackTrace() 메서드 : 예외 발생 코드를 추적해서 모두 콘솔에 출력합니다.
예외가 어디에서 발생했는지 출력해주기 때문에 프로그램을 테스트하면서 오류를 찾을 때 활용됩니다.
예제)
public class Account {
private long balance;
public Account() { }
public long getBalance() {
return balance;
}
public void deposit(int money) {
balance += money;
}
public void withdraw(int money) throws BalanceInsufficientException {
if(balance < money) {
throw new BalanceInsufficientException("잔고부족:"+(money-balance)+" 모자람");
}
balance -= money;
}
}
실행 클래스
public class AccountExample {
public static void main(String[] args) {
Account account = new Account();
//예금하기
account.deposit(10000);
System.out.println("예금액: " + account.getBalance());
//출금하기
try {
account.withdraw(30000);
} catch(BalanceInsufficientException e) {
String message = e.getMessage();
System.out.println(message);
System.out.println();
e.printStackTrace();
}
}
}
예제는 이클립스에서 실행해 보시면 되겠습니다.
'자바' 카테고리의 다른 글
JAVA 자바 Object 클래스 객체 해시코드 hashCode() (0) | 2017.03.14 |
---|---|
JAVA Object 클래스 객체 비교 equals() (0) | 2017.03.14 |
JAVA 자바 예외처리 : 사용자 정의 예외와 예외 발생 (0) | 2017.03.13 |
JAVA 자바 예외처리 : 예외 떠넘기기 (0) | 2017.03.13 |
JAVA 자바 예외처리 : 자동 리소스 닫기 (0) | 2017.03.13 |