Asercje powinny być używane do sprawdzania czegoś, co nigdy nie powinno się zdarzyć, podczas gdy wyjątek powinien być używany do sprawdzania czegoś, co może się zdarzyć. Na przykład funkcja może dzielić przez 0, więc należy użyć wyjątku, ale można użyć asercji, aby sprawdzić, czy dysk twardy nagle zniknął.
Czy asercja jest dobra czy zła?
Nie, ani goto, ani twierdzenie nie są złe. Ale oba mogą być nadużywane. Assert służy do sprawdzania stanu zdrowia. Rzeczy, które powinny zabić program, jeśli nie są poprawne.
Dlaczego asercje są złe?
Asercje mogą być używane do weryfikacji wewnętrznych niezmienników implementacji, takich jak stan wewnętrzny przed lub po wykonaniu jakiejś metody itp. Jeśli asercja się nie powiedzie, to naprawdę oznacza, że logika programu jest zepsuta i możesz' t odzyskać z tego.
Czy asercje są dobrą praktyką?
Przewodnik językowy wprowadzający asercje zawiera kilka dobrych wskazówek, które są w zasadzie tym, co właśnie opisałem. Tak, to dobra praktyka. W przypadku Spring jest to szczególnie ważne, ponieważ kontrole sprawdzają poprawność ustawień właściwości itp., które zazwyczaj pochodzą z plików okablowania XML.
W jakich przypadkach asercje są przydatne?
Zakładając, że kod jest prawidłowo testowany, asercje robią kilka użytecznych rzeczy: Wykrywa subtelne błędy, które w innym przypadku mogłyby pozostać niewykryte . Wykrywaj błędy wcześniej po ich wystąpieniu niż mogłyby zostać wykryte w inny sposób. Złożyć oświadczenieo skutkach kodu, który jest gwarantowany.