确认异常的行为和对象的含义

时间:2010-03-02 16:28:25

标签: php oop exception

我只想确认我对异常的理解以及它们如何影响对象。

如果我抛出一个异常,那就停止了方法的处理,对吗?这样做没有意义

if ( some_check() ) {
    throw new Exception(...);
} else {
    ...
}

我应该这样做

if ( some_check() ) {
    throw new Exception(...);
} 

rest_of_code();

另外,如果我在__construct中抛出异常,那会破坏对象,对吧?所以我应该在前面做所有的参数验证异常抛出 - 如果在输入验证异常中它会被炸毁,那么构建对象是没有意义的。

2 个答案:

答案 0 :(得分:2)

是的,你做得对:D你有我的投票:D

尽管如此,您可能会对一个数据进行两次测试:D

if( checkOne (a)){
   throw new Exception(...);
}
else (checkTwo(a)){
...

答案 1 :(得分:0)

在构造函数中抛出异常是很正常的,你没有别的选择。此外,您没有提到包含某种内存资源的对象,请确保使用using语句或try / catch / finally并释放内存,但异常。