logo

Java의 어설션

어설션을 사용하면 프로그램에서 이루어진 모든 가정의 정확성을 테스트할 수 있습니다. 어설션은 다음을 사용하여 달성됩니다. 주장하다 Java의 진술. 어설션을 실행하는 동안 해당 내용이 참인 것으로 간주됩니다. 실패하면 JVM은 다음과 같은 오류를 발생시킵니다. 어설션 오류. 주로 개발 중 테스트 목적으로 사용됩니다.

그만큼 주장하다 문은 부울 표현식과 함께 사용되며 다음과 같이 작성할 수 있습니다. 두 가지 다른 방법 .



첫 번째 방법:

 assert expression;>

두 번째 방법:

 assert expression1 : expression2;>

예:



파이썬에서 s는 무엇입니까?

자바






// Java program to demonstrate syntax of assertion> import> java.util.Scanner;> class> Test {> >public> static> void> main(String args[])> >{> >int> value =>15>;> >assert> value>=>20> :>' Underweight'>;> >System.out.println(>'value is '> + value);> >}> }>

>

>

산출

value is 15>

어설션을 활성화한 후:

산출:

Exception in thread 'main' java.lang.AssertionError: Underweight>

어설션 활성화

기본적으로 어설션은 비활성화되어 있습니다. 주어진 대로 코드를 실행해야 합니다. Java 소스 코드에서 어설션 문을 활성화하는 구문은 다음과 같습니다.

 java –ea  Test>

또는

 java –enableassertions  Test>

여기서 Test는 파일 이름입니다.

자바 상수

어설션 비활성화

Java에서 어설션을 비활성화하는 구문은 다음과 같습니다.

 java –da  Test>

또는

 java –disableassertions  Test>

여기서 Test는 파일 이름입니다.

어설션을 사용하는 이유

프로그래머가 자신의 가정이 틀렸는지 아닌지 확인하고 싶은 곳 어디든 가능합니다.

  • 도달할 수 없는 것처럼 보이는 코드가 실제로 도달할 수 없는지 확인합니다.
  • 댓글에 작성된 가정이 올바른지 확인합니다.
if ((x & 1) == 1) { } else // x must be even { assert (x % 2 == 0); }>
  • 기본 스위치 케이스에 도달하지 않았는지 확인합니다.
  • 객체의 상태를 확인합니다.
  • 방법의 시작 부분에
  • 메소드 호출 후.

어설션과 일반 예외 처리

어설션은 주로 논리적으로 불가능한 상황을 확인하는 데 사용됩니다. 예를 들어, 코드가 실행되기 전에 예상되는 상태나 실행이 완료된 후의 상태를 확인하는 데 사용할 수 있습니다. 일반적인 예외/오류 처리와 달리 어설션은 일반적으로 런타임 시 비활성화됩니다.

어설션을 사용하는 위치

  • 개인 메소드에 대한 인수입니다. 비공개 인수는 개발자의 코드에서만 제공되며 개발자는 인수에 대한 가정을 확인하고 싶을 수도 있습니다.
  • 조건부 사례.
  • 모든 메소드의 시작 부분에 있는 조건입니다.

어설션을 사용하지 말아야 할 경우

  • 오류 메시지를 대체하는 데 어설션을 사용해서는 안 됩니다.
  • 사용자가 제공할 수 있는 공용 메서드의 인수를 확인하는 데 어설션을 사용하면 안 됩니다. 사용자가 제공한 오류를 처리하려면 오류 처리를 사용해야 합니다.
  • 명령줄 인수에는 어설션을 사용하면 안 됩니다.

예:

자바


디렉토리 이름 변경 리눅스



// Java program to demonstrate assertion in Java> public> class> Example {> >public> static> void> main(String[] args)> >{> >int> age =>14>;> >assert> age <=>18> :>'Cannot Vote'>;> >System.out.println(>'The voter's age is '> + age);> >}> }>

>

>

산출

The voter's age is 14>