하이버네이트 코드를 보다 보니 assert 예약어 있는 것을 발견했다. assert는 어디에 쓰일까?
assert는 JDK 1.4부터 지원되었다.
조금 특이한 점은 JVM Argument로 -ea 옵션을 붙여 줘야 assert를 실행한다.
ea 옵션은 테스틑 위한 것이며, 실제 환경에서 사용하지 않기에 코드에 assert가 있어도 큰 문제를 발생시키는 않는다. 하지만 굳이 Production 코드에 이걸 놔둘 필요는 없다. 테스트를 Framework들이 많이 나와있고 충분히 대체 가능하다.
그래서 assert는 어떻게 사용할까?
assert [true or false]
이게 전부다. assert는 true 이면 통과 하지만, false 일 경우 AssertionError가 발생한다.
조금 특이한게 Exception이 아니고 Error를 뱉는다.