2011-11-28 16 views

Odpowiedz

20

Asercje są zwykle używane podczas programowania i są kompilowane z aplikacji w trybie zwolnienia (jest to kontrolowane przez NS_BLOCK_ASSERTIONS). Z drugiej strony, wyjątki mogą być używane przez cały czas.

Po zgłoszeniu wyjątku przesuwa się w górę łańcucha wywołań, dopóki nie zostanie przechwycony (i zgłoszony, zignorowany lub zostanie zgłoszony inny wyjątek) lub osiągnie szczyt, w takim przypadku spowoduje to, że aplikacja wypadek. Może być uważana za część umowy metody klasy i musi być udokumentowana, aby osoba dzwoniąca mogła poprawnie to znieść.

Asercje to naprawdę sprawdzian programisty w środowisku wykonawczym, który zapewnia, że ​​coś (ogólnie zmienna instancji) jest w określonym stanie, a jeśli nie, to abort(), aby zwrócić uwagę deweloperów. Sprawdzanie poprawności programisty sprawdza, czy coś jest w stanie, jakiego spodziewa się deweloper.

+0

Dzięki. To pomoże – Niraj

7

Asercje służą do znajdowania rzeczy, które nigdy nie powinny się zdarzyć, pod warunkiem, że kod działa tak, jak powinien. Jeśli tak się dzieje, w kodzie jest błąd i chcesz się o nim dowiedzieć, przynajmniej jeśli zdarzy się to podczas testowania. (Większość ludzi wyłącza asercje w wydanym kodzie.)

W przeciwieństwie do tego, wyjątki są używane do znajdowania rzeczy, które poszły nie tak, nad którymi nie masz kontroli. Na przykład, jeśli twoja aplikacja jest zależna od serwera bazy danych i serwer bazy danych jest niedostępny, może to spowodować wyjątek w twoim kodzie. (Nie popełniaj błędów polegających na używaniu wyjątków w celu sprawdzania poprawności danych wprowadzanych przez użytkownika, jeśli jest to zwykły przepływ programu - użytkownik zapomniał wprowadzić pole lub coś w tym rodzaju - to nie wyjątek. Wyjątki powinny być wyjątkowe.)

Powiązane problemy