今天突然想到构造函数不能返回错误,那么万一在构造函数里面出错了,程序该如何处理。想了一下,其实很简单,只要抛出个异常,在new的时候用try去处理该异常就可以像有返回值的函数一样处理构造函数了。
这么简单的问题竟然今天才想到,想想以前的做法是,在资源使用之前判断其是否可用,这样的效率太低了,狂汗。
不过个人觉得异常这种东西还是太暴力了,尽量不出现为好:)
我觉得以前见过的一种做法很好,就是为每个类编写一个初始化的函数,将所有资源的申请放到那个函数里面去,这样,如果申请失败了,可以返回错误,而不是使用暴力的异常来通知程序。
像symbian里面,它为每个类编写了一个静态的NewL函数,用它来创建一个自身的实例,封装了new创建实例以及初始化的过程,这样,如果初始化失败,也可以返回NULL了。
文章评论(0条评论)
登录后参与讨论