我在我的几个函数中写了很多这样的代码:
$f = fopen($fname);
if ($f === false) {
throw new Exception("cannot open $fname");
}
当你处理大量要打开的文件时,这是冗长的&处理我想知道这是否可以在没有任何意外不良副作用的情况下工作:
$f = fopen($fname) or die("cannot open $fname");
这在Perl中是惯用的,但在PHP中正确吗?还有其他更好的方法吗?这似乎是有效的,但我知道PHP会以很多意想不到的方式咬你。
我倾向于选择这样的东西:
if(!($f = @fopen($fname, 'r'))) {
throw new Exception("cannot open $fname");
}
perl样式也很好,尽管我相信fopen会引起错误。
就我个人而言,我将所有代码作为一个可能引发异常的函数。然后调用捕捉异常的函数。在收到异常(如果是现场(生产))后,生成适当的页面和日志详细信息。否则(测试/开发)将这些细节放到页面上。