# Java Assertion
자바 1.4의 새기능: Assertion : http://javacan.tistory.com/entry/79
#### Assertion 기본
자바 1.4 버전은 1.3 버전에 보안을 비롯한 다양한 확장 API를 추가하여 그 크기가 방대해졌을 뿐만 아니라
NIO와 로깅 등 새로운 기능을 추가함으로써 완벽한 개발 플랫폼으로 확장되었다.
이러한 새로운 기능들 중에서 자바에서는 전혀 새로운 기능이라고 할 수 있는 게 Assertion 기능이다.
#### Assertion은 무엇인가?
Assertion은 불리언 식(expression)을 포함하고 있는 문장이다.
그 문장이 실행될 경우 불리언 식이 참이라고 단언할 수 있다.
:: 자바 1.4의 새기능이 Assertion 이다.
:: 프로그램에서 가정하고 있는 사실이 올바른 지 검사할 수 있다.
:: 이러한 검사 기능은 예외(Exception)를 사용해서도 구현할 수 있긴 하지만,
Assertion은 예외와는 다른 의미의 검사 기능을 제공한다.
:: javac -ea 컴파일 옵션을 지정해야한다.
#### 컴파일 옵션
-ea 또는 -enableassertions : 사용
-da 또는 -disableassertions : 미사용
#### 강제적으로 Assertion 기능을 사용하도록 만드는 방법
강제적으로 Assertion 기능을 사용하도록 유도하는 방법이 필요하다.
```java
static {
boolean assertsEnabled = false;
assert assertsEnabled = true;
if (!assertsEnabled) throw new RuntimeException("Assertion 기능이 사용가능해야 합니다!");
}
```
위 코드를 main() 메소드가 있는 클래스에 추가하면 Assertion 기능을 사용하도록 유도할 수 있다.
-ea 옵션이 enable되어 있지 않을경우 assert이후의 assertsEnable = true 구문이 실행되지 않으므로,
if (!assertsEnabled) 문장이 실행되어 RuntimeException을 발생시킨다.
#### Assertion의 문법
1. assert 불리언식;
2. assert 뷸라온식:수식;
ex) assert i<0;
assert (!pageNo.equals(""));
assert age > 0 : "나이는 음수가 될 수 없습니다:"+age;
assert ((i/2*23-12)>0):checkValue();
# JavaMain.java
```java
public class JavaMain {
static {
boolean assertsEnabled = false;
assert assertsEnabled = true; if (!assertsEnabled) throw new RuntimeException("Assertion 기능이 사용가능해야 합니다!");
}
public static void main(String[] args) {
assert 1 == 2 ;
assert 1 == 2 : "왼쪽의 조건식이 false이면 이 메시지와 함께 AssertionError가 발생합니다.";
System.out.println("test");
}
}
```
'java' 카테고리의 다른 글
IntelliJ Shortcut (0) | 2019.07.13 |
---|---|
Javascript Destructuring assignment( 비구조화 할당 ) (0) | 2019.07.12 |
Junit Test (0) | 2019.07.12 |
Singletone Design Pattern (0) | 2019.01.30 |
Adapter Design Pattern (0) | 2019.01.30 |
댓글