php - 有没有办法在不必创建变量的情况下捕获异常?

标签 php exception error-handling try-catch php-8

在 PHP 中,我有时会使用 try/catch 捕获一些异常:

try {
    ...
} catch (Exception $e) {
    // Nothing, this is normal
}

使用这种代码,我最终得到了一个变量 $e,它是为一无所有(大量资源)而创建的,并且 PHP_MD(PHP Mess Detector)由于未使用的变量而创建了一个警告.

最佳答案

从 PHP 8 开始,可以使用非捕获捕获。

This is the relevant RFC ,以 48 票对 1 票获得赞成。

现在可以做这样的事情了:

try {
    readFile($file);
} catch (FileDoesNotExist) {
    echo "File does not exist";
} catch (UnauthorizedAccess) {
    echo "User does not have the appropriate permissions to access the file";
    log("User attempted to access $file");
}

这样,对于一些异常细节不相关且异常类型已经提供所有必要上下文的边缘情况,可以在不创建新变量的情况下捕获异常。

关于php - 有没有办法在不必创建变量的情况下捕获异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4820211/

相关文章:

php - 如何在 zend 框架中记录数据库错误

python-3.x - 捕获 Flask API 中引发的自定义异常。引发的所有异常都以 500 错误告终

java - Spring的Class Cast异常错误

php - 从一张表迁移到另一张表

php - 存储过程调用后 Codeigniter DB 错误

c# - Windows 服务中未处理的异常

java - 将异常重新分配给 catch 参数

error-handling - 无效的所有者或用户错误

php - 我需要将 SQL native 放在查询生成器 Doctrine2 中

php - MySQL:csv 中的 INTO OUTFILE 生成无效的 csv 格式