이글루스 | 로그인  



태그 : assert

assert 사용하기

http://www.atmarkit.co.jp/fjava/javatips/095java011.html

J2SDK 1.4 부터 사용가능

assert 조건 ;
assert 조건 : 조건을 만족하지 못했을때 보여줄 메시지 ;

개발 모드에서는 활성화, 운영 모드에서는 비 활성화 함으로서...
성능 향상을 꾀할수 있다.

컴파일
javac -source 1.4 MyAssertion.java
실행
java -ea MyAssertion

PrepaidCard.java
public class PrepaidCard {
  public int amount;

  public PrepaidCard(int precharge) {
    assert precharge >= 0 : "초기잔고가 틀렸습니다.";//사전조건

    amount = precharge;

    assert amount >= 0 : "잔고가 틀렸습니다.";//사후조건
  }
  public void pay(int price) {
    assert price >= 0 : "가격이 음수 입니다. 가격:" + price; // 사전조건
    assert amount >= price : "가격이 잔고 보다 많음 가격:" + price + " 잔고:" + amount; //사후조건

    amount -= price;
    System.out.println("가격:" + price +  " 잔고:" + amount);
    
    assert amount >= 0 : "잔고부정"; //사후조건
    
  }

  public static void main(String args[]) {
    PrepaidCard card = new PrepaidCard(1000);1000원짜리 작성
    card.pay(300);//300원 정상
    card.pay(500);//500원 정상
    card.pay(-200);//에러
  }
}

실행결과
가격:300 잔고:700
가격:500 잔고:200
Exception in thread "main" java.lang.AssertionError: 가격이 음수입니다. 가격:-200
at PrepaidCard.pay(PrepaidCard.java:12)
at PrepaidCard.main(PrepaidCard.java:26)

by 나림 | 2007/11/08 00:48 | java | 트랙백 | 덧글(0)

◀ 이전 페이지          다음 페이지 ▶