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의 어설션은 조건이 있는 경우와 조건이 메서드의 시작 부분에 있을 때 사용됩니다. 또한 개인 메서드에 대한 인수의 경우. 개발자의 코드는 개인 인수를 제공하고 프로그래머가 인수에 대한 가정을 확인해야 할 때를 제공합니다.
다음은 주장의 사용을 피해야 하는 몇 가지 상황입니다.
- Sun Microsystems에서 제공한 사양에 따라 공개 메서드에서 인수를 확인하는 동안 어설션을 사용하면 안 됩니다. 그 이유는 NullPointerException 및 IllegalArgumentException과 같은 적절한 런타임 예외가 발생하기 때문입니다.
- 오류 메시지를 대신하여 사용해서는 안 됩니다.
- 어떤 상황에서도 오류가 발생하지 않도록 하려면 assertion 사용을 건너뜁니다.
- 명령줄 인수에 사용하면 안 됩니다.
- 사용자가 오류를 제공하는 경우 공개 메서드의 인수를 확인하는 데 어설션을 사용해서는 안 됩니다. 대신 오류 처리를 사용해야 합니다.
어설션을 비활성화하는 방법?
다음 명령은 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 블록에서 처리됩니다.