如何捕获“无错误:未调用 PDO 构造函数”

电磁阀

我怎样才能捕捉到以下错误:No error: PDO constructor was not called

我的问题不是如何解决错误,而是如何捕捉它!

我需要一个 PHPUnit 测试环境。

我试图像那样抓住它,但它根本不能那样工作。

$pdo = (new \ReflectionClass(\PDO::class))->newInstanceWithoutConstructor();

try
{
    $pdo->query("SELECT * FROM table");
}
catch (ErrorException $exc)
{
    echo $exc->getTraceAsString();
}

确切的(错误)消息如下:PDO::query(): SQLSTATE[00000]: No error: PDO constructor was not called,但我不确定,是否甚至可以捕获任何类型的 PHP。

我已经检查pdo_raise_impl_error()使用上述错误消息调用的方法[PHP 7.3.3],但我不够聪明,无法预测它产生的实际错误类型......

可以请人给建议吗?

电磁阀

我现在在测试前使用以下代码。请特别检查第一行和最后一行代码。

感谢@YourCommonSense!

set_error_handler(function(int $errno, string $errstr, string $errfile, int $errline) {
    throw new ErrorException($errstr, $errno, E_ERROR, $errfile, $errline);
});

$this->expectException(ErrorException::class);
$this->expectExceptionMessage("SQLSTATE[00000]: No error: PDO constructor was not called");

/* @var $pdo PDO */
$pdo = (new ReflectionClass(PDO::class))->newInstanceWithoutConstructor();
$pdo->query("SELECT * FROM table"); // triggers the error.

restore_error_handler();

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

没有错误:未调用PDO构造函数

来自分类Dev

从函数调用PDO

来自分类Dev

构造函数未调用

来自分类Dev

类构造函数中的PHP PDO查询

来自分类Dev

构造函数中的PHP全局PDO对象

来自分类Dev

DataFrame构造函数未正确调用!错误

来自分类Dev

提取函数PDO返回错误

来自分类Dev

PDO数据未插入数据库无错误

来自分类Dev

未调用C ++构造函数

来自分类Dev

移动构造函数未调用

来自分类Dev

C ++构造函数未调用

来自分类Dev

复制构造函数未调用

来自分类Dev

静态构造函数未调用

来自分类Dev

从构造方法调用方法:错误:未捕获的TypeError:未定义不是一个函数

来自分类Dev

如何在PDO类构造函数中为PHP PgSQL数据库设置UTF-8

来自分类Dev

如何捕获构造函数异常?

来自分类Dev

C ++-构造函数调用构造函数

来自分类Dev

构造函数是“调用”与构造函数是“执行”的吗?

来自分类Dev

在构造函数中调用重载构造函数

来自分类Dev

构造函数被“调用”与构造函数被“执行”了吗?

来自分类Dev

在构造函数内调用构造函数

来自分类Dev

构造函数使用参数调用构造函数

来自分类Dev

从构造函数中调用构造函数并捕获异常

来自分类Dev

Javascript TypeError:...不是构造函数-如何从构造函数构造函数?

来自分类Dev

构造函数在错误的时间被调用

来自分类Dev

构造函数在错误的时间被调用

来自分类Dev

PHP70 PDO错误+未捕获错误:“ PDO”类

来自分类Dev

得到的错误是“未捕获(承诺)TypeError:对象不是构造函数(…)”

来自分类Dev

未捕获的类型错误:视图不是构造函数