这种处理PHP安全错误的方法吗?这是惯用的吗?

时间:2013-02-15 17:54:12

标签: php error-handling

我在一些函数中编写了很多这样的代码:

$f = fopen($fname);

if ($f === false) {
    throw new Exception("cannot open $fname");
}

当您处理大量文件以打开&处理。我想知道这是否可行,没有任何不可预见的不良副作用:

$f = fopen($fname) or die("cannot open $fname");

这在Perl中是惯用的,但在PHP中这是正确的吗?还有另一种更好的方法吗?这似乎是有效的,但我知道PHP会以很多意想不到的方式咬你。

2 个答案:

答案 0 :(得分:1)

我个人将所有代码都作为一个可能引发异常的函数。然后调用该函数捕获异常。收到异常后如果是live(生产)生成适当的页面和日志详细信息。否则(测试/开发)将这些细节放在页面上。

答案 1 :(得分:1)

我倾向于选择类似的东西:

if(!($f = @fopen($fname, 'r'))) {
    throw new Exception("cannot open $fname");
}

perl风格也很好,但我相信fopen会引发错误。