More exception handling: using E_USER_ERROR code for our custom errors