更加细致的type类型检测
一些异常处理