Co to jest asercja w Javie? Jak korzystać z asercji w Javie
Opublikowany: 2021-05-20Spis 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:
- 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.
- Nie powinien być używany jako zamiennik komunikatów o błędach.
- Jeśli nie chcesz, aby w jakiejkolwiek sytuacji wystąpił błąd, pomiń stosowanie asercji.
- Nie należy go używać w argumentach wiersza poleceń.
- 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.