PHP unlink() 处理异常

2022-08-30 11:48:03

好吧,我一直在想我是否可以正确处理该功能。我不希望该函数在无法取消链接文件时抛出一些令人讨厌的错误(可能是由于找不到文件)。unlink()unlink()

我试过类似的东西

try { 
    unlink("secret/secret.txt"); 
} catch(Exception $e) { 
    print "whoops!"; 
    //or even leaving it empty so nothing is displayed
} 

但它不起作用。我不是PHP专家。我搜索并找到了这个异常处理代码在Web中的某个地方。但正如我所记得的,Java也用了同样的方法。所以它应该起作用。我不知道代码有什么问题。

或者我可以简单地使用一个如果..其他语句如

if(unlink($file)){
  //leaving here empty must ensure that nothing is displayed
}else{
  //leaving here empty must ensure that nothing is displayed
}

但是这段代码也不起作用。我在哪里犯了错误?还有哪些其他方法可以正确处理它?

是否可以通过使用错误报告(PHP)(生产和开发环境)进行操作来隐藏错误?


答案 1

注意:这可能不再有效。查看布莱恩的评论

如果只想禁止显示错误,可以执行以下操作:

@unlink('your_file_name');

通常,在 PHP 中,@ 将禁止显示任何错误。

更好的方法是最小化错误概率。您说过错误可能性之一是由不存在的文件引起的。如果我是你,我会这样做:

if(file_exists('your_file_name')){
    unlink('your_file_name');
}else{
    echo 'file not found';
}

祝你好运:)


答案 2

unlink不会引发异常,在 中生成错误。执行此操作的正确方法是在尝试调用文件之前检查该文件是否存在。如果您只是担心没有错误输出,那么您应该关闭,无论如何,您应该始终在生产环境中执行此操作。然后它们将被记录。unlinkdisplay_errors

不要用 来抑制错误,它很少是可取的。@

你能更详细地描述一下吗?@

我不确定你到底是什么意思。但文档在这里。至于你为什么不想使用它...那是因为那时你永远不会知道代码不起作用或有问题。即使代码从功能角度来看仍然有效,它仍然会遇到问题,并且该问题可能会使其他内容在某些时候完全不起作用。如果您从未遇到过错误,则可能会浪费大量时间进行调试。

更改日志级别或禁用错误显示是可以的,但是您永远不想完全抑制它们。


推荐