Najviše koristi od izuzetaka sam imao kada je trebalo aplikacija da se OPORAVI od greške, a ne da se debuguje grešku. Tipa, meni su klase bacale izuzetke ako probaš da ih sačuvaš, a nisu sva polja ispravna ili ako negde u dužem skupu akcija dođe do greške:
PHP kôd:
$task_list = new TaskList();
$task_list->setName('Korisnik');
try {
DB::beginWork();
$task_list->save();
foreach($tasks as $task) {
$task_list->addTask($task);
}
DB::commit();
flash_success(lang('success add task list', $task_list->getName()));
$this->redirectToUrl($task_list->getViewUrl());
} catch(Exception $e) {
DB::rollback();
tpl_assign('error', $e);
} // try
Šta god da pukne u celom procesu rollbackovaće transakciju i prikazati grešku. Ako ništa ne pukne teraj dalje.