这个函数感觉有点庞大，一系列while for try if 等语句嵌套挺深的。