Java에서 주장이란 무엇입니까? Java에서 Assertion을 사용하는 방법

게시 됨: 2021-05-20

목차

Java에서 주장이란 무엇입니까?

Java 의 어설션은 실행될 때 어설션이 참으로 가정되므로 프로그램 가정의 정확성을 보장하는 데 사용됩니다. 어설션이 false인 경우 Java Virtual Machine은 AssertionError라는 오류를 발생시킵니다. Java의 주장은 주로 테스트 목적으로 응용 프로그램 을 찾았습니다. 부울 표현식은 어설션 문과 함께 사용됩니다. assertion은 하나의 문장이고, 'asset' 키워드는 자바에서 assertion을 수행하는데 사용된다.

통사론

다음은 Java에서 어설션이 수행되는 두 가지 방법입니다.

1. 주장 표현;

2. 표현1 주장: 표현2;

Java에서 어설션을 사용하는 방법은 무엇입니까?

Java에서는 기본적으로 어설션이 비활성화되어 있습니다. 다음 명령을 사용하여 활성화합니다.

자바 -ea 테스트

(또는)

java -enableassertions 테스트

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

다음은 어설션 구문을 보여주는 예입니다.

공개 클래스 테스트

{

공개 정적 무효 메인(String[] 인수)

{

정수 값 = 13;

주장 값 <= 12 : "청소년 아님";

System.out.println("십대 나이는 " + 값);

}

}

산출

다음은 JVM(Java Virtual Machine)에 의한 어설션 오류 생성의 예입니다.

클래스 테스트

{

공개 정적 무효 메인(문자열 args[])

{

정수 가중치 = 30;

주장 가중치 >= 20 : "과체중";

System.out.println("가중치는 "+값입니다);

}

}

산출

주장을 활성화한 후,

산출

스레드 "main"의 예외 java.lang.AssertionError: 과체중

다음과 같이 보입니다.

원천

어설션을 사용하는 이유

Java 주장 은 다음을 위해 사용됩니다.

  • 프로그래머가 가정한 내용이 맞는지 아닌지 확인하십시오.
  • 코드에 연결할 수 없는 것처럼 보이면 연결할 수 없는지 확인합니다.
  • 주석에 작성된 가정이 올바른지 확인하십시오. 예를 들면 다음과 같습니다.

만약 ((y & 1) == 1)

{ }

else // y는 짝수여야 합니다.

{ 주장 (y % 2 == 0); }

  • 기본 스위치 케이스에 도달하지 않았는지 확인
  • 개체의 상태를 확인

Java의 어설션 은 메소드 시작과 메소드 호출 후에 사용됩니다.

어설션은 어디에 사용합니까?

Java의 어설션은 조건이 있는 경우와 조건이 메서드의 시작 부분에 있을 때 사용됩니다. 또한 개인 메서드에 대한 인수의 경우. 개발자의 코드는 개인 인수를 제공하고 프로그래머가 인수에 대한 가정을 확인해야 할 때를 제공합니다.

다음은 주장의 사용을 피해야 하는 몇 가지 상황입니다.

  1. Sun Microsystems에서 제공한 사양에 따라 공개 메서드에서 인수를 확인하는 동안 어설션을 사용하면 안 됩니다. 그 이유는 NullPointerException 및 IllegalArgumentException과 같은 적절한 런타임 예외가 발생하기 때문입니다.
  2. 오류 메시지를 대신하여 사용해서는 안 됩니다.
  3. 어떤 상황에서도 오류가 발생하지 않도록 하려면 assertion 사용을 건너뜁니다.
  4. 명령줄 인수에 사용하면 안 됩니다.
  5. 사용자가 오류를 제공하는 경우 공개 메서드의 인수를 확인하는 데 어설션을 사용해서는 안 됩니다. 대신 오류 처리를 사용해야 합니다.

어설션을 비활성화하는 방법?

다음 명령은 Java에서 어설션을 비활성화하는 데 사용됩니다.

자바 –da 테스트

또는

자바 – disableassertions 테스트

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

Java에서 Assertion을 사용하는 방법

예 1: Java 어설션

공개 클래스 메인 {

공개 정적 무효 메인(문자열 인수[]) {

String[] 평일 = {"월", "화", "수","목","금"};

주장 평일.길이 == 2;

System.out.println("한 주에 " + 평일.길이 + " 평일이 있습니다.");

}

}

산출

다음 출력은 어설션이 비활성화되고 프로그램에 컴파일 오류가 없을 때 달성됩니다.

어설션이 활성화되면 다음 출력이 표시됩니다.

스레드 "main"의 예외 java.lang.AssertionError

다음과 같은 또 다른 형태의 주장 진술이 있습니다.

주장 조건: 표현;

이 형식의 주장 문에는 AssertionError 개체의 생성자에 전달되는 식이 있습니다. 조건이 false인 경우 이 표현식에는 오류의 세부사항 메시지로 표시되는 값이 있습니다. 문제를 디버깅하는 데 도움이 되도록 자세한 마사지는 어설션 실패 정보를 캡처하여 전송합니다.

예 2: 표현식 예제가 있는 Java 어설션

공개 클래스 메인 {

공개 정적 무효 메인(문자열 인수[]) {

String[] 평일 = {"월", "화", "수","목","금", "토"};

assert weekday.length == 5: “일주일에 5개의 요일이 있습니다.”;

System.out.println("한 주에 " + 평일.길이 + " 평일이 있습니다.");

}

}

산출

"main" 스레드의 예외 java.lang.AssertionError: 일주일에 5번의 주말만 있습니다.

위의 예와 같이 표현식은 AssertionError 객체의 생성자에 전달됩니다. 어설션이 활성화되고 가정이 false이므로 예외가 throw될 때 적절한 메시지가 표시됩니다. 이 메시지는 어설션 실패의 원인이 된 오류를 진단하고 수정하는 데 도움이 됩니다.

세계 최고의 대학에서 온라인으로 소프트웨어 엔지니어링 과정을 배우십시오 . 이그 제 큐 티브 PG 프로그램, 고급 인증 프로그램 또는 석사 프로그램을 획득하여 경력을 빠르게 추적하십시오.

결론

이 블로그에서는 어설션을 사용하여 프로그램 논리를 테스트하는 방법을 배웠습니다. 또한 어설션을 예외의 대체물로 사용할 수 없는 이유를 배웠고 예외를 사용하는 것이 예외 처리보다 더 효과적인 상황을 보았습니다.

Java에 대해 더 배우고 프로그래밍 경력을 쌓고 싶다면 인도 최대의 온라인 고등 교육 회사인 upGrad의 무료 Java 온라인 과정을 살펴보십시오. 자세한 내용은 upGrad방문 하십시오.

Java, 전체 스택 소프트웨어 개발에 대해 자세히 알아보려면 작업 전문가를 위해 설계되었으며 9+ 시간의 엄격한 교육을 제공하는 upGrad & IIIT-B의 전체 스택 소프트웨어 개발 Executive PG 프로그램을 확인하십시오. 프로젝트 및 과제, IIIT-B 동문 상태, 실질적인 실습 캡스톤 프로젝트 및 최고의 기업과의 취업 지원.

Java에서 주장이란 무엇입니까?

Java 프로그래밍 언어에서 주장은 일부 요구 사항을 따라야 함을 확인하는 데 사용되는 방법입니다. Java의 어설션 실패는 컴파일 오류로 간주됩니다. 즉, 코드에 어설션이 있는 경우 코드가 컴파일되지 않고 오류 메시지가 표시됩니다. Java의 이 기능을 사용하면 예기치 않거나 원치 않는 런타임 오류로부터 코드를 보호할 수 있습니다. Java assert 문을 사용하면 런타임에 프로그램의 불변성을 테스트할 수 있습니다. 어설션은 일반적으로 코드가 잘못된 상태에 들어가지 않았는지 확인하는 데 사용됩니다. 다른 언어에서는 이러한 목적으로 사용되는 계약 방법 또는 사전/사후 조건을 볼 수 있습니다.

Java에서 예외를 처리하는 방법은 무엇입니까?

예외는 런타임 오류입니다. 즉, 컴파일 중이 아니라 프로그램이 실행되는 동안 발생합니다. 오류가 발생하여 프로그램을 계속할 수 없는 경우 예외가 발생합니다. 세 가지 다른 방법으로 예외를 처리할 수 있습니다. 예외를 무시하고 프로그램이 종료되도록 허용합니다. 예외를 다시 발생시키려면 throw 키워드를 사용하십시오. 예외를 처리하려면 try-catch 블록을 사용하십시오. 예외를 기록하거나 인쇄한 다음 프로그램을 종료할 수 있습니다. exit 키워드를 사용하여 프로그램을 종료할 수 있습니다. throw 키워드를 사용하여 예외를 다시 throw할 수 있습니다. try-catch 블록을 사용하여 예외를 처리할 수 있습니다. 인수에 예외를 허용하는 catch 블록이 있습니다. 예외가 발생했는지 여부에 관계없이 실행되는 finally 블록이 있습니다.

Java에서 try-catch는 어떻게 작동합니까?

try-catch는 제어된 방식으로 런타임 오류를 처리할 수 있는 범위를 정의할 수 있는 Java의 메커니즘입니다. 또한 오류가 발생했을 때 실행 흐름이 완전히 중지되지 않도록 합니다. try 및 catch는 예외 처리를 구현하는 데 사용되는 두 가지 키워드입니다. 프로그램에서 오류가 발생할 때마다 try 블록이 실행되고 오류는 catch 블록에서 처리됩니다.