细小改动,添加了失败的控制