重构,补充异常流程case