php如何在分配变量时捕获异常

时间:2012-07-20 23:00:30

标签: php exception-handling

我的代码中有一些类。从这些类中我发起了对象,比如说

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

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

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

谢谢!

编辑:

我试过了:

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

但它不起作用。

3 个答案:

答案 0 :(得分:1)

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

至于最佳实践,您应首先尝试读取数据库以查看该值是否存在,否则,您不会尝试创建该对象,因此无需例外。

答案 1 :(得分:0)

如果它抛出异常,请使用try..catch块

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

查看here了解有关例外的更多详情

答案 2 :(得分:-1)

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

if(isset($myGoodObject->categoryId)){
    $c = new category ($myGoodObject->categoryId); 
    //...
}