// 3
W (1) następuje alokowanie pamięci poprzez stworzenie obiektu KlasaZasobu. Następnie zostaje wywołana pewna funkcja pracaZzasobem( KlasaZasobu* ) (2) pracująca z obiektem klasy KlasaZasobu. Po tym wszystkim nastąpi zwolnienie zarezerwowanego obszaru pamięci w (3). Na pierwszy rzut oka, funkcja ta nie powoduje wycieków pamięci. Wyobraźmy sobie sytuację, w której po alokowaniu pamięci w (1), funkcja pracaZzasobem( KlasaZasobu* ) wywoła wyjątek (np. z powodu błędnych danych). Zostaną wtedy usunięte wszystkie obiekty lokalne i wykonanie programu zostanie przekazane do miejsca, gdzie została wywołana funkcja funkcja() – zgodnie z działaniem mechanizmu wyjątków. Lokalnym obiektem w tym przypadku jest wskaźnik zasob i zostanie on usunięty, jednak zarezerwowany obszar pamięci, do którego ma dostęp, już nie. Z powodu wywołania wyjątku przez funkcję pracaZzasobem( KlasaZasobu* ), zasób nie zostanie zwolniony w (3).