use spl exceptions