在方法或调用方法

时间:2017-01-16 15:42:51

标签: php oop exception stack-trace

对于模糊的标题感到抱歉。

我想知道在这样的场景中最好做什么:

$template = $loader->load('file');

if (!$template) {
    throw new \Exception('my custom exception');
}

保持这样,或者实际在$loader->loader()方法中抛出异常会更好吗?

我想如果你确实遇到过像例子中那样抛出的异常,你总是会点击无论如何抛出异常的方法。因此,没有真正的理由让异常更高的堆栈跟踪。

对此的想法?当你可以让方法实际实现异常时,为什么你会在堆栈跟踪的更高位置捕获异常?

1 个答案:

答案 0 :(得分:-1)

我的意见是方法必须遵守合同或死亡。 每次将对象作为输入时,都必须检查它是否为NULL或有效的对象引用。如果忘记检查,$fh = fopen('test.txt', 'w'); $str = "hello!"; fwrite($fh, $str); fclose($fh); 可能会在运行时中断执行。因此,如上所述,您的逻辑会受到多次检查和if / then / else forks的污染。

为什么null不好你可以阅读there

相关问题