我只想确认我对异常的理解以及它们如何影响对象。
如果我抛出一个异常,那就停止了方法的处理,对吗?这样做没有意义
if ( some_check() ) {
throw new Exception(...);
} else {
...
}
我应该这样做
if ( some_check() ) {
throw new Exception(...);
}
rest_of_code();
另外,如果我在__construct中抛出异常,那会破坏对象,对吧?所以我应该在前面做所有的参数验证异常抛出 - 如果在输入验证异常中它会被炸毁,那么构建对象是没有意义的。
答案 0 :(得分:2)
是的,你做得对:D你有我的投票:D
尽管如此,您可能会对一个数据进行两次测试:D
if( checkOne (a)){
throw new Exception(...);
}
else (checkTwo(a)){
...
答案 1 :(得分:0)
在构造函数中抛出异常是很正常的,你没有别的选择。此外,您没有提到包含某种内存资源的对象,请确保使用using语句或try / catch / finally并释放内存,但异常。