Dotychczas, kiedy metoda wyrzucała błąd, program zostawał zakończony. A teraz maszyna Java tworzy specjalny obiekt (wyjątek), który przechowuje informacje o błędzie. Program wychodzi z bieżącej metody, następnie z metody, która wywołała tę metodę i tak dalej, aż dojdzie do metody main. Aby program mógł dalej działać, wyjątek musi zostać „obsłużony”.