增加异常处理，整理了结构。