Wyjątek

Wyjątek (skrót od „zdarzenie wyjątkowe”) to błąd lub nieoczekiwane zdarzenie, które występuje podczas działania programu. Gdy wystąpi wyjątek, przerywa on przepływ działania programu. Jeśli program potrafi obsłużyć i przetworzyć wyjątek, może kontynuować działanie. Jeśli wyjątek nie zostanie obsłużony, program może zostać zmuszony do zakończenia działania.

Wiele języków programowania obsługuje wyjątki, choć wykorzystuje je na różne sposoby. Na przykład wyjątki są integralną częścią języka Java i często służą do sterowania przepływem programu. Java zawiera klasę Exception, która ma dziesiątki podklas, takich jak TimeoutException, UserException i IOException. Podklasy takie jak IOException zawierają bardziej szczegółowe wyjątki, na przykład FileNotFoundException i CharacterCodingException, które mogą zostać „rzucone”, jeśli nie znaleziono pliku lub nie rozpoznano kodowania znaków ciągu znaków.

Inne języki używają wyjątków wyłącznie do przechwytywania podstawowych błędów wykonania, takich jak niepowodzenie przydzielania pamięci lub błędy na poziomie systemu. Na przykład program w języku C++ może rzucić wyjątek bad_alloc, gdy nie można przydzielić pamięci, oraz wyjątek system_error, gdy system operacyjny wygeneruje błąd.

Obsługa wyjątków

Dobrze napisany program komputerowy sprawdza, czy występują wyjątki, i odpowiednio je obsługuje. Oznacza to, że programista musi sprawdzić, jakie wyjątki mogą wystąpić, i napisać kod do ich przetwarzania. Jeśli program dobrze obsługuje wyjątki, nieoczekiwane błędy można wykrywać i kontrolować bez awarii programu.

Wyjątki są „rzucane”, gdy wystąpią, i „przechwytywane” przez inny kod w programie. Można je rzucać jawnie za pomocą instrukcji throw lub niejawnie wewnątrz klauzuli try. Poniżej przedstawiono przykład składni „try / catch” w języku Java. Poniższy kod próbuje podzielić liczbę przez zero, ale rzuca wyjątek ArithmeticException i zwraca 0 jako wynik.

 1. int a = 11;
 2. int b = 0;
 3. int result = 0;
 4. try {
 5.   int c = a / b;
 6.   result = c;
 7. } catch(ArithmeticException ex) {
 8.   result = 0;
 9. }
10. return result;

Wyjątek jest rzucany w wierszu 5 (gdy 11 zostaje podzielone przez 0), dlatego pozostała część instrukcji try (wiersz 6) nie jest wykonywana. Zamiast tego wyjątek zostaje przechwycony w wierszu 7 i zwracany jest wynik równy 0.

Zaktualizowano May 6, 2017 przez Per C.

quizSprawdź swoją wiedzę

Which of the following high-level languages is the oldest?

A
Python
0%
B
Perl
0%
C
PHP
0%
D
Pascal
0%
Correct! Incorrect!     View the High-Level Language definition.
More Quizzes →

Słownik komputerowy Tech Terms

Definicja Wyjątek na tej stronie jest oryginalną definicją napisaną przez autorów TechTerms.com. Jeśli chcesz odwołać się do tej strony lub zacytować tę definicję, użyj zielonego paska cytowania bezpośrednio poniżej definicji.

Naszym celem jest wyjaśnianie terminologii komputerowej w prosty i zrozumiały sposób. Dążymy do dokładności i prostoty w każdej publikowanej definicji. Jeśli masz uwagi lub chcesz zaproponować nowy termin techniczny, skontaktuj się z nami.

Newsletter Tech Terms

Poszerzaj swoją wiedzę techniczną dzięki naszemu codziennemu lub tygodniowemu newsletterowi! Subskrybuj już dziś i otrzymuj nowe terminy oraz quizy prosto do skrzynki odbiorczej.

Zapisz się do bezpłatnego newslettera TechTerms

Jak często chcesz otrzymywać e-maile?

Możesz wypisać się lub zmienić częstotliwość w dowolnym momencie, korzystając z linków w każdym e-mailu. Pytania? Skontaktuj się z nami.

Uwaga: Newsletter jest wysyłany w języku angielskim.