Co to jest asercja w Javie? Jak korzystać z asercji w Javie

Opublikowany: 2021-05-20

Spis treści

Co to jest asercja w Javie?

Asercja w Javie służy do zapewnienia poprawności wszelkich założeń programu, ponieważ zakłada się, że asercja jest prawdziwa, gdy jest wykonywana. Wirtualna maszyna Java zgłasza błąd o nazwie AssertionError, jeśli potwierdzenie jest fałszywe. Asercja w Javie znalazła zastosowanie głównie do celów testowych. Wyrażenia logiczne są używane wraz z instrukcjami asercji. Asercja to instrukcja, a słowo kluczowe 'asset' służy do przeprowadzenia asercji w Javie.

Składnia

Poniżej przedstawiono dwa sposoby przeprowadzania asercji w Javie:

1. potwierdzić wyrażenie;

2. asercja wyrażenie1: wyrażenie2;

Jak korzystać z asercji w Javie?

Asercje są domyślnie wyłączone w Javie. Do ich włączenia służy następujące polecenie:

test java-ea

(lub)

java -enableassertions Test

gdzie Test jest nazwą pliku Java.

Oto przykład demonstrujący składnię asercji:

Test klasy publicznej

{

public static void main(String[] args)

{

wartość int = 13;

potwierdzić wartość <= 12 : „Nie nastolatek”;

System.out.println („Wiek nastolatka to ” + wartość);

}

}

Wyjście

Oto przykład generowania błędu asercji przez wirtualną maszynę Javy –

test klasowy

{

public static void main( String args[] )

{

waga całkowita = 30;

potwierdź wagę >= 20 : „Nadwaga”;

System.out.println("Waga to "+wartość);

}

}

Wyjście

Po włączeniu asercji,

Wyjście

Wyjątek w wątku „głównym” java.lang.AssertionError: Nadwaga

Tak to wygląda:

Źródło

Dlaczego warto korzystać z twierdzeń?

Asercja w Javie służy do:

  • Sprawdź, czy założenia przyjęte przez programistę są poprawne, czy nie.
  • Upewnij się, że jeśli kod wygląda na nieosiągalny, to jest nieosiągalny.
  • Potwierdź, że założenia zapisane w komentarzach są prawidłowe, na przykład:

jeśli ((y & 1) == 1)

{}

inaczej // y musi być parzyste

{ asercja (y % 2 == 0); }

  • upewnij się, że domyślny przypadek przełącznika nie został osiągnięty
  • sprawdź stan obiektu

Asercja w Javie jest używana na początku metody i po jej wywołaniu.

Gdzie korzystać z twierdzeń?

Asercja w Javie jest używana w przypadkach warunkowych oraz gdy warunki są na początku dowolnej metody. Także w przypadku argumentów do metod prywatnych. Kod dewelopera dostarcza prywatnych argumentów i kiedy programista musi sprawdzić swoje założenia dotyczące argumentów.

Oto kilka sytuacji, w których należy unikać stosowania asercji:

  1. Zgodnie ze specyfikacją podaną przez Sun Microsystems, asercji nie należy używać podczas sprawdzania argumentów w metodach publicznych, ponieważ skutkowałoby to odpowiednimi wyjątkami w czasie wykonywania, takimi jak NullPointerException i IllegalArgumentException.
  2. Nie powinien być używany jako zamiennik komunikatów o błędach.
  3. Jeśli nie chcesz, aby w jakiejkolwiek sytuacji wystąpił błąd, pomiń stosowanie asercji.
  4. Nie należy go używać w argumentach wiersza poleceń.
  5. Jeśli użytkownik podaje błędy, asercje nie powinny być używane do sprawdzania argumentów w metodach publicznych. Zamiast tego należy użyć obsługi błędów.

Jak wyłączyć twierdzenia?

Następujące polecenia służą do wyłączania asercji w Javie:

java –da Test

Lub

java – test wyłączania asercji

gdzie Test jest nazwą pliku Java.

Sposoby korzystania z asercji w Javie

Przykład 1: asercja Java

klasa publiczna Główna {

public static void main(String args[]) {

String[] dni tygodnia = {„Pon”, „Wt”, „Śr”, „Czw”, „Pt”};

asercja dni tygodnia.długość == 2;

System.out.println(„Istnieją ” + dni tygodnia.długość + ”dni tygodnia w tygodniu”);

}

}

Wyjście

Poniższe dane wyjściowe są uzyskiwane, gdy asercje są wyłączone, a program nie zawiera błędów kompilacji.

Po włączeniu asercji otrzymamy następujące dane wyjściowe:

Wyjątek w wątku „głównym” java.lang.AssertionError

Istnieje inna forma stwierdzenia asercji, która wygląda następująco:

warunek potwierdzenia: wyrażenie;

Ta forma instrukcji asercji zawiera wyrażenie, które jest przekazywane do konstruktora obiektu AssertionError. Jeśli warunek jest fałszywy, to wyrażenie ma wartość wyświetlaną jako szczegółowy komunikat o błędzie. Aby pomóc w debugowaniu problemu, szczegółowe informacje o błędzie przechwytują i przesyłają informacje o niepowodzeniu asercji.

Przykład 2: asercja Java z przykładem wyrażenia

klasa publiczna Główna {

public static void main(String args[]) {

String[] dni tygodnia = {„Pon”, „Wt”, „Śr”, „Czw”, „Pt”, „Sob”};

attach weekdays.length == 5: „W tygodniu jest tylko 5 dni roboczych”;;

System.out.println(„Istnieją ” + dni tygodnia.długość + ”dni tygodnia w tygodniu”);

}

}

Wyjście

Wyjątek w wątku „głównym” java.lang.AssertionError: Jest tylko 5 weekendów w tygodniu

Jak pokazano w powyższym przykładzie, wyrażenie jest przekazywane do konstruktora obiektu AssertionError. Ponieważ asercje są włączone, a założenie jest fałszywe, po zgłoszeniu wyjątku wyświetlany jest odpowiedni komunikat. Komunikat pomaga zdiagnozować i naprawić błąd, który spowodował niepowodzenie asercji.

Ucz się kursów inżynierii oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

W tym blogu dowiedziałeś się, jak używać asercji do testowania logiki programu. Dowiedziałeś się również, dlaczego asercje nie mogą być używane jako zamienniki wyjątków, i widziałeś sytuacje, w których użycie wyjątku byłoby bardziej efektywne niż obsługa wyjątków.

Jeśli chcesz dowiedzieć się więcej o Javie i zrobić postęp w swojej karierze programistycznej, zapoznaj się z bezpłatnymi internetowymi kursami Java organizowanymi przez upGrad, największą indyjską firmę zajmującą się szkolnictwem wyższym online. Odwiedź upGrad , aby uzyskać więcej informacji.

Jeśli chcesz dowiedzieć się więcej na temat Java, pełnego stosu oprogramowania, sprawdź program Executive PG UpGrad i IIIT-B w zakresie pełnego stosu oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9+ projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Co to jest asercja w Javie?

W języku programowania Java asercja jest metodą używaną do zapewnienia, że ​​należy przestrzegać pewnych wymagań. Niepowodzenie asercji w Javie jest uważane za błąd kompilacji, tzn. jeśli w twoim kodzie są jakieś asercje, kod nie zostanie skompilowany i otrzymasz komunikat o błędzie. Ta funkcja Javy umożliwia ochronę kodu przed nieoczekiwanymi lub niechcianymi błędami w czasie wykonywania. Instrukcja asercji Java umożliwia testowanie niezmienników programu w czasie wykonywania. Asercje są zwykle używane do sprawdzenia, czy kod nie wchodzi w nieprawidłowy stan. W innych językach możesz zobaczyć stosowane w tym celu metody zawierania umów lub warunki przed/po.

Jak obsługiwać wyjątki w Javie?

Wyjątkiem jest błąd wykonania, co oznacza, że ​​występuje podczas działania programu, a nie podczas kompilacji. Wyjątek jest zgłaszany, gdy wystąpił błąd i program nie może kontynuować. Wyjątki można obsługiwać na trzy różne sposoby: Zignoruj ​​wyjątek i zezwól na zakończenie pracy programu. Użyj słowa kluczowego throw, aby ponownie zgłosić wyjątek. Użyj bloku try-catch, aby obsłużyć wyjątek. Możesz zarejestrować lub wydrukować wyjątek, a następnie pozwolić programowi zakończyć działanie. Możesz użyć słowa kluczowego exit, aby zakończyć program. Możesz użyć słowa kluczowego throw, aby ponownie zgłosić wyjątek. Możesz użyć bloku try-catch do obsługi wyjątku. Istnieje blok catch, który akceptuje wyjątek w swoim argumencie. Istnieje blok finalny, który jest uruchamiany bez względu na to, czy zostanie zgłoszony wyjątek, czy nie.

Jak działa try-catch w Javie?

try-catch to mechanizm w Javie, który pozwala zdefiniować zakres, w którym można w kontrolowany sposób radzić sobie z błędami w czasie wykonywania. Zapewnia również, że przepływ wykonywania nie zostanie całkowicie zatrzymany w przypadku napotkania błędu. try and catch to dwa słowa kluczowe używane do implementacji obsługi wyjątków. Za każdym razem, gdy w programie wystąpi błąd, zostanie wykonany blok try, a błąd zostanie następnie obsłużony przez blok catch.