본문 바로가기

Programming/JAVA

assertion

assertion 작성된 코드가 정상적으로 작동하는지에 대해 검증하는 디버깅용 코드 입니다.
assert 표현식1;
assert 표현식1 : 표현식2;
두가지방식으로 사용됩니다.
첫번째는 표현식이 false라면 assertionError를 발생하구요.
두번째는 표현식 표현식2를 에러로 발생 시킵니다.
if문과는 반대 개념이죠. false여야만 에러를 발생 시킵니다.

  *****************************************************
Assert문으로 실행결과가 ture일때
*****************************************************

소스====================================
public class TestScjp1 {
public static void main (String[] args) {
TestScjp1 ts=new TestScjp1();
assert ts.someMethod();
System.out.println("Program End");
}

public boolean someMethod() {
System.out.println("Run someMethod()");
return true;
}
}

컴파일=================================
d:\\>javac -source 1.4 TestScjp1.java

그냥실행================================
d:\\>java TestScjp1
Program End

Assert적용실행===========================
d:\\>java -ea TestScjp1
Run someMethod()
Program End


*****************************************************
Assert문으로 실행결과가 false일때 Error로 걸러내는 경우
*****************************************************
소스========================================
public class TestScjp1 {
public static void main (String[] args) {
TestScjp1 ts=new TestScjp1();
assert ts.someMethod();
System.out.println("Program End");
}

public boolean someMethod() {
System.out.println("Run someMethod()");
return false;
}
}
컴파일======================================
d:\\>javac -source 1.4 TestScjp1.java

실행=======================================
d:\\>java TestScjp1
Program End

Assert적용실행================================
d:\\>java -ea TestScjp1
Run someMethod()
Exception in thread "main" java.lang.AssertionError
        at TestScjp1.main(TestScjp1.java:5)