refine the exception