Poniżej przedstawiony jest przykład w pseudokodzie ilustrujący zagadnienie:
procedura foo() try zaalokuj zasób X operacje programu jeśli wystąpiła sytuacja wyjątkowa: throw wyjątek operacje programu finally zwolnij zasób X end koniec
try wywołaj foo() catch wyjątek obsłuż wyjątek end
Na samym początku procedury foo() alokujemy pewien zasób X, który musi zostać zwolniony przed zakończeniem jej wykonywania. Jednak w międzyczasie może zostać rzucony wyjątek, który w normalnych okolicznościach spowodowałby opuszczenie procedury i pojawienie się wycieku pamięci. Dlatego kod procedury zostaje objęty blokiem try z dołączoną klauzulą finally opisującą zwolnienie zasobów. Język programowania gwarantuje nam, że zostanie ona wykonana zarówno wtedy, gdy procedura zakończy się normalnie, jak i gdy zostanie rzucony wyjątek, który obsługiwany jest przez kod ją wywołujący.
Typy wyjątków Reprezentacja wyjątków jest zależna od konkretnego języka programowania.