Jakie jest główne zastosowanie NSAssert Vs. Wyjątek NSException. Co jest bardziej zalecane i kiedy?Jakie jest główne zastosowanie NSAssert Vs. Wyjątek NSE
Odpowiedz
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.
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.)
- 1. getc() vs fgetc() - Jakie są główne różnice?
- 2. jakie jest praktyczne zastosowanie System.Transactions?
- 3. jakie jest właściwe zastosowanie dyrektywy CMake "project"
- 4. Jakie jest zastosowanie ::: (potrójne dwukropek) w Scala
- 5. Jakie jest zastosowanie klonującego interfejsu w java?
- 6. jakie jest podstawowe zastosowanie programu equort_storage?
- 7. Jakie zastosowanie ma if_/3?
- 8. Skąd wiadomo, jakie jest główne działanie związane z uruchomieniem?
- 9. błąd Weird NSAssert
- 10. Zastosowanie NG-src vs src
- 11. jakie jest zastosowanie ramy, szyby lub panelu w ruchu?
- 12. Jakie jest zastosowanie ram IoC w aplikacji MVC?
- 13. Jakie jest zastosowanie w klasach/statycznych metodach w ruby?
- 14. Jakie jest zastosowanie warstwy trwałości w dowolnej aplikacji?
- 15. Jakie jest praktyczne zastosowanie urządzenia io! blok w Clojure?
- 16. BSE/NSE cytat w PHP
- 17. Zastosowanie throw_with_nested i złapać wyjątek zagnieżdżonych
- 18. Wyjątek zastosowanie począwszy Wiosna z Java
- 19. Brak śledzenia stosu z NSAssert
- 20. Wyjątek ConstraintViolation VS DataIntegrityViolationException
- 21. Różnica stosuje się od vs zastosowanie wtyczki
- 22. Zastosowanie fizyki Box2D do UIView vs CALayer
- 23. Jakie zachowanie powoduje przerwany wyjątek?
- 24. Jakie są główne zmiany w składni Ruby 1.9?
- 25. Jakie są główne/najlepsze rezonatory Maven do wykorzystania?
- 26. Jakie są główne różnice między Sinatrą i Ramaze?
- 27. Jakie są główne różnice między dialektami sql mysql i oracle?
- 28. Jakie są główne zalety korzystania z eval() w JavaScript?
- 29. Jakie są główne różnice między tabelami CTE i TEMP?
- 30. Jakie są główne różnice między Convert.ChangeType lub Convert.ToInt32?
Dzięki. To pomoże – Niraj