Redbean的异常处理不起作用?

时间:2014-06-01 11:14:49

标签: 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();

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

' redbeanphp'旨在变得相当灵活'这意味着如果您使用正确的语法,那么它不太可能失败。但是,对于您可能会考虑的错误而言,它并不总能满足您的期望或期望。这很大程度上取决于冻结'设置在' R :: setup'中。

在' load'如:

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

redbeanphp将其视为' R :: allocate(' book')'如果语句无法找到带有该标识的记录,则返回空记录。返回的' bean的ID将为零。

对于无效列'或者'值',如果你没有冻结' R :: setup'连接语句然后它只是创建列并更改值。

如果你想更加严格,那么“冻结”'数据库和/或查看' FUSE',它允许'模型'要自动链接到' bean的类#39;在这些'模型'你可以在课程中包括很多检查,验证等。