c 构造函数可以抛异常 用init解决吗