0

我的代码中有一些类。从这些类中,我启动对象,比如说

$c = new category ($myGoodObject->categoryId); 

这应该给出 myGoodObject 的类别对象。但是,例如,如果在数据库中没有定义 1000 的 categoryId,则该类将引发异常。

我怎么抓住这个?从有时可能不存在的数据库中启动/加载对象的最佳实践是什么?如何避免失败?

谢谢!

编辑:

我试过这个:

try {
$c = new category (1000);
} catch (Exception $e) {return false;}

但它没有用。

4

3 回答 3

1
try
{
    $c = new category ($myGoodObject->categoryId); 
} 
catch (Exception $e) 
{
    echo 'Caught exception: ',  $e->getMessage(), "\n";
}

至于最佳实践,您应该首先尝试读取数据库以查看该值是否存在,如果不存在,则不要尝试创建对象,从而避免需要异常。

于 2012-07-20T23:03:06.497 回答
0

如果它引发异常,请使用 try..catch 块

try {
   //try assigning 
catch (Exception $e) {
   //do something
}

在此处查看有关异常的更多详细信息

于 2012-07-20T23:03:39.863 回答
-1

不要抓住它,在使用它之前确保它在那里......

if(isset($myGoodObject->categoryId)){
    $c = new category ($myGoodObject->categoryId); 
    //...
}
于 2012-07-20T23:04:46.590 回答