0

我正在尝试将数据简单地添加到数据库表(PostgreSQL)中。起初,我什至无法得到一个简单的

$my_item = $_item_class->new(...);

去工作。我发现我在代码中拼写的字段与我在“模型”代码中的拼写不同。

但是,现在,这是可行的,但是当我尝试时:

$my_item->save;

似乎抛出了异常。所有这一切都发生在 eval {...} 结构中,我想捕捉异常并看看出了什么问题,但我不知道该怎么做。

为什么像“保存”这样的东西会在这里失败?我检查了一切,一切似乎都正确(当然!)。

而且,我如何捕捉似乎被抛出的异常?

谢谢!

4

1 回答 1

0

这一切都是我自己想出来的。这很简单。当我对它进行编辑时,我不知何故在我的课堂上复制了一个字段。就这些。该类只是在类的哈希表中指定了两个同名字段,两者具有相同的特征。当我删除其中一个时,代码起作用了。

关于我关于如何捕获异常的第二个问题,我必须学习如何拥有一个

if ($@) {
    .
    .
    .
}

在我的“eval {...}”结构之后。因为我是 Perl 的新手,所以我不明白这一点。但是,实际上很容易弄清楚。我的问题是我正在使用一些代码作为我的模型,但没有这样做,而是命名了在其“eval {...}”代码中引发的特定异常。所以,我认为我必须知道 Rose::DB::Object 调用可能引发的异常的名称,但我在文档中找不到任何此类异常。当我了解“if ($@) {...}”时,我能够在 $@ 中打印出报告的异常,并且从中我能够看到我上面提到的重复字段的问题。

这就是它的全部。现在一切正常。

于 2013-04-16T01:50:57.750 回答