Exception에 메소드가 있다. 예외의 정보를 가져올 수 있다.
printStackTrace();
- 처음 호출 한 곳 부터 에러 발생한 끝까지 들어간 내용 그대로 보여준다. 말 그대로 Stack을 trace 했으니, Stack에 쌓여있는 모든 함수들을 그대로 뿌려준다.
getMessage();
예외 메세지만 간략하게 보여준다.
다음과 같이 Exception과 Account 클래스를 정의했다고 볼 때
public class BalanceException extends Exception{
public BalanceException(){}
public BalanceException(String message){
super(message);
}
}
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 BalanceException{
if(balance< money){
throw new BalanceException("잔고 부족"+(money-balance));
}
}
}
e.printStackTrace()가 찍힌 경우
public class AccountExample{
public static void main(String[] args){
Account account = new Account();
//예금하기
account.deposit(1000);
System.out.println(account.getBalance());
//출금하기
try{
account.withdraw(3000);
}catch(BalanceException e){
e.printStackTrace();
}
}
}
e.getMessage()를 쓴 경우
public class AccountExample{
public static void main(String[] args){
Account account = new Account();
//예금하기
account.deposit(1000);
System.out.println(account.getBalance());
//출금하기
try{
account.withdraw(3000);
}catch(BalanceException e){
String msg = e.getMessage();
System.out.println(msg);
}
}
}
전달했었던 message가 뜨는 걸 확인할 수 있다.
public void withdraw(int money) throws BalanceException{
if(balance< money){
throw new BalanceException("잔고 부족"+(money-balance));
}
}
반응형
'Java' 카테고리의 다른 글
예외 : 사용자 정의 예외와 예외 발생 (0) | 2021.03.25 |
---|---|
예외 : 예외 떠넘기기 (0) | 2021.03.25 |
예외 : try-with-resource (0) | 2021.03.25 |
예외 : try-catch-finally (0) | 2021.03.25 |
예외 : 예외와 예외 클래스 (0) | 2021.03.25 |
Uploaded by Notion2Tistory v1.1.0