optimize error handle && update deps