对于模糊的标题感到抱歉。
我想知道在这样的场景中最好做什么:
$template = $loader->load('file');
if (!$template) {
throw new \Exception('my custom exception');
}
保持这样,或者实际在$loader->loader()
方法中抛出异常会更好吗?
我想如果你确实遇到过像例子中那样抛出的异常,你总是会点击无论如何抛出异常的方法。因此,没有真正的理由让异常更高的堆栈跟踪。
对此的想法?当你可以让方法实际实现异常时,为什么你会在堆栈跟踪的更高位置捕获异常?
答案 0 :(得分:-1)
我的意见是方法必须遵守合同或死亡。
每次将对象作为输入时,都必须检查它是否为NULL或有效的对象引用。如果忘记检查,$fh = fopen('test.txt', 'w');
$str = "hello!";
fwrite($fh, $str);
fclose($fh);
可能会在运行时中断执行。因此,如上所述,您的逻辑会受到多次检查和if / then / else forks的污染。
为什么null不好你可以阅读there