gpt4 book ai didi

php - 如何可靠地识别 PHP 中的特定错误?

转载 作者:行者123 更新时间:2023-12-04 05:44:12 25 4
gpt4 key购买 nike

因为 PHP 的 unlink()本身不支持异常,我正在为它制作一个包装函数。它应该抛出一个 FileNotFoundException如果给定的文件因为不存在而无法删除。

为此,我需要判断 unlink() 抛出的错误是否是由丢失的文件或其他原因引起的。

这是我的自定义删除功能的测试版本:

public function deleteFile($path){
set_error_handler(function($errLevel, $errString){
debug($errLevel);
debug($errString);
});
unlink($path);
restore_error_handler();
}

对于 $errLevel$errString我得到 2 (E_WARNING) 和 unlink(/tmp/fooNonExisting): No such file or directory

一个相当大胆的方法是这样的:
if( strpos($errString, 'No such file or directory') !== false ) {
throw new FileNotFoundException();
};

问题 1:我可以在多大程度上依赖不同 PHP 版本的相同错误字符串?问题2:有没有更好的方法?

最佳答案

我会简化代码:

public function deleteFile($path){

if (!file_exists($path) {
throw new FileNotFoundException();
}else{
unlink($path);
}

if (file_exists($path) {
throw new FileNotDeleted();
}
}

那么你就不必 catch $errstr并进行复杂的错误捕获。当引入异常时,它将适用于 PHP 4。

关于php - 如何可靠地识别 PHP 中的特定错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10899863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com