Php 红豆';s异常处理不起作用?

Php 红豆';s异常处理不起作用?,php,redbean,Php,Redbean,我是RedbeanPHP(v4.0.4)的新手,并尝试了一下 然而,每当我试图强制执行错误(加载不存在的bean、存储错误的类型值等),它都不会抛出任何异常 无论我犯了什么错误,它似乎总是成功的 例如: require APP .'libs/redbean/rb.php'; R::setup($dsn, $user, $pass); R::freeze(true); $book = R::load('book', 25); // unexisting record R::begin()

我是RedbeanPHP(v4.0.4)的新手,并尝试了一下

然而,每当我试图强制执行错误(加载不存在的bean、存储错误的类型值等),它都不会抛出任何异常

无论我犯了什么错误,它似乎总是成功的

例如:

require APP .'libs/redbean/rb.php';

R::setup($dsn, $user, $pass);
R::freeze(true);

$book = R::load('book', 25);  // unexisting record


R::begin();

try
{
    R::trash($book);
    R::commit();
    echo 'book trashed';  // always shows this
}

catch (Exception $e)
{
    R::rollback();
    echo $e;              // not showing this
}

有什么想法吗?

“RedbeanHP”的设计相当“灵活”。这意味着如果使用正确的语法,则不太可能失败。然而,对于你可能会想到的“错误”,它并不总是按照你的期望或愿望去做。这在很大程度上取决于“R::setup”中的“冻结”设置

在“荷载”的情况下,如:

$book = R::load('book', 25);  // unexisting record
redbeanphp将其视为“R::dispense('book')”语句,如果找不到具有该“id”的记录,则返回空记录。返回的“bean”的id将为零

在“invalid columns”或“values”的情况下,如果没有在“R::setup”连接语句上冻结数据库,那么它只会创建列并更改值


如果您想要更严格,那么“冻结”数据库和/或查看“FUSE”,它允许“model”类自动链接到“bean”。在这些“模型”类中,您可以包含大量的检查、验证等。

我使用“redbeanphp”并且非常喜欢它。如果您有任何问题或疑问,并且您认为我可能能够提供帮助,我的个人资料将提供如何与我联系的详细信息。@RyanVincent谢谢!我会记住的!:)