support custom status code and message

fix #350
remain the original error message