24 października 2008
Kategorie: programowanie | Tagi: C++, safe exceptions
komentarze: 0
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 całość »
20 października 2008
Kategorie: programowanie | Tagi: C++, code, safe exceptions
komentarze: 0
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 całość »
17 października 2008
Kategorie: programowanie | Tagi: C++, code, safe exceptions
komentarze: 0
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 całość »