看到标题像胡说八道,其实真是我等车的时候胡思乱想的。 没有RAII(含智能指针,它是用RAII方式来管理内存资源),使用异常将举步维艰,因为c++没有finally。但是有了RAII,c++的异常使用起来比java更轻快。没有异常,构造函数除了赋赋初值干不了什么事情,所以往往需要init(或者start或者kaishi或者任何你喜欢叫的名字)来做复杂初始化。 如果使用错误码方式,RAII还是很好用的,不过构造函数就干不了太复杂的事情了。