22. Wyjątki

Tak jak Java,Python i wiele innych języków obiektowych, język C++ umożliwia obsługę wyjątków (ang. exception), czyli sytuacji, gdy powstaje w czasie wykonania programu błąd uniemożliwiający dalszy jego przebieg (na przykład dzielenie przez zero czy wywołanie metody za pomocą pustego wskaźnika). Normalnie, powstanie takiej sytuacji powoduje przerwanie programu, zwykle z mało czytelnym komunikatem o naturze błędu. Obsługa wyjątków pozwala na zdefiniowanie przez programistę akcji, które należy podjąć po powstaniu sytuacji wyjątkowej — w szczególności programista może świadomie podjąć decyzję o ich całkowitym zignorowaniu.

W profesjonalnych programach właściwa obsługa sytuacji wyjątkowych może stanowić znaczną część całego kodu; żaden bank nie chciałby bowiem, aby jego klientom ukazywał się nagle na ekranie komunikat „segmentation fault, core dumped” lub „skontaktuj się ze sprzedawcą”.

Właściwa i pełna obsługa sytuacji wyjątkowych to zadanie trudne. Jedną z przyczyn jest fakt, że język C++ był zaprojektowany tak, aby był zgodny z językiem C, gdzie osługi wyjątków nie ma. W tym rozdziale podamy parę podstawowych informacji na ten temat: szerszego omówienia należy szukać w bardziej zaawansowanych tekstach na temat języka C++ (wiele można znaleźć w książce Stroustrupa).



Podrozdziały

T.R. Werner, 25 lutego 2017; 22:31