为什么$ my_item->保存失败并使用Rose :: DB :: Object?

时间:2013-04-13 23:23:30

标签: rose-db-object

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

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

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

但是,现在,这是有效的,但是当我尝试时:

$my_item->save;

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

我自己想出了这一切。这很简单。当我对它进行编辑时,我在课堂上重复了一个字段。这就是全部了。该类只有两个在类中的哈希表中指定的相同名称的字段,两者具有相同的特征。当我删除其中一个时,代码就可以了。

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

if ($@) {
    .
    .
    .
}

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

这就是它的全部内容。现在一切都很好。

相关问题