자바

JAVA 자바 예외처리 : 예외 정보 얻기

알통몬_ 2017. 3. 13. 11:01
반응형



안녕하세요 알통몬입니다.

공감 및 댓글은 포스팅 하는데 아주아주 큰 힘이 됩니다!!

포스팅 내용이 찾아주신 분들께 도움이 되길 바라며

더 깔끔하고 좋은 포스팅을 만들어 나가겠습니다^^

 

예외 정보 얻기 

모든 예외 객체는 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();

}

}

}

예제는 이클립스에서 실행해 보시면 되겠습니다.

반응형