add some exception handler