Use SPL exceptions