Wyjątki w obiektach globalnych

Kontynuujemy zabawy z wyjątkami ;) A co powiecie na zgłaszanie sytuacji wyjątkowych w konstruktorze globalnego obiektu? Co się stanie, gdy konstruktor rzuci wyjątkiem przed wejściem do funkcji main? Poleci zapewne terminate(). Jak zasygnalizować zaistniałą sytuację i „odwieść” program od wywołania terminate()? Obsłużyć wyjątek rzecz jasna ;) Jak przechwycić wyjątek z globalnych obiektów? Sprawa trochę skomplikowana, … Czytaj dalej Wyjątki w obiektach globalnych

Niebezpieczne wyjątki

Ostatnio trochę marudziłem o rzucaniu wyjątków w konstruktorach, to dziś może wspomnę o destruktorach i konstruktorach kopiujących. Każdy chyba wie, że nie należy rzucać wyjątków z destruktorów. To samo dotyczy konstruktora kopiującego obiektu wyjątku. Problem z destruktorami jest to związany z obsługą wyjątku przez kompilator (czas miedzy rzuceniem wyjątku a złapaniem go przez odpowiedni catch), … Czytaj dalej Niebezpieczne wyjątki

Wyjątki w konstruktorze

Wyjątki są najprostszą i najlepszą możliwością zgłoszenia błędów zaistniałych w konstruktorze, przez których tworzenie obiektu zakończyło się porażką.  Bez sytuacji wyjątkowych nie ma bezpośredniego prostego mechanizmu  zgłoszenia zaistniałej sytuacji, ponieważ konstruktor nie przekazuje żadnego typu i wartości, która mogłaby przekazać informacje o zaistniałym błędzie. Oczywiście można obejść ten problem poprzez zastosowanie dodatkowej zmiennej lokalnej do … Czytaj dalej Wyjątki w konstruktorze