Wyjątek
Wyjątek (skrót od „wyjątkowego zdarzenia”) to błąd lub nieoczekiwane zdarzenie, które ma miejsce, gdy plik program biegnie. Gdy wystąpi wyjątek, przerywa przepływ programu. Jeśli program może obsłużyć i przetworzyć wyjątek, może kontynuować działanie. Jeśli wyjątek nie jest obsługiwany, program może zostać zmuszony do zakończenia.
Wielokrotność języki programowania obsługują wyjątki, chociaż są używane na różne sposoby. Na przykład wyjątki są integralną częścią Jawa języka i często służą do sterowania przepływem programu. Java zawiera Wyjątek klasa, który ma dziesiątki podklas, takich jak TimeoutException, UserException, IOException. Podklasy, takie jak IOException zawierają bardziej szczegółowe wyjątki, takie jak FileNotFoundException i CharacterCodingException które można „wyrzucić”, jeśli plik filet nie został znaleziony lub kodowanie znaków z ciąg jest nie rozpoznany.
Inne języki używają wyjątków tylko do przechwytywania podstawowych błędy uruchomieniowe, na przykład niepowodzenie alokacji pamięć lub błędy na poziomie systemu. Na przykład plik C + + program może wyrzucić plik bad_alloc wyjątek, gdy nie można przydzielić pamięci i błąd systemu wyjątek, gdy system operacyjny powoduje błąd.
Obsługa wyjątków
Dobrze napisany program komputerowy sprawdza wyjątki i odpowiednio je obsługuje. Oznacza to wywoływacz musi sprawdzić prawdopodobne wyjątki i napisać kod aby je przetworzyć. Jeśli program dobrze obsługuje wyjątki, nieoczekiwane błędy mogą być wykrywane i zarządzane bez upaść program.
Wyjątki są „wyrzucane”, gdy się pojawiają i są „przechwytywane” przez inny kod w programie. Można je wyrzucać jawnie przy użyciu rzucać instrukcja lub niejawnie w pliku próbować klauzula. Poniżej znajduje się przykład „wypróbuj / złap” składnia w Javie. Poniższy kod próbuje podzielić przez zero, ale zgłasza ArithmeticException wyjątek i zwraca 0 jako wynik.
1. int a = 11;
2. int b = 0;
3. int wynik = 0;
4. try {
5. int c = a / b;
6. wynik = c;
7.} catch (ArithmeticException ex) {
8. wynik = 0;
9.}
10. zwracany wynik;
Wyjątek jest zgłaszany w linii 5 (gdy 11 jest dzielone przez 0), więc reszta instrukcji try (linia 6) nie jest wykonywana. Zamiast tego wyjątek jest przechwytywany w linii 7. i zwracany jest wynik 0.