我的代码中有一些类。我从这些类中初始化对象,比如
$c = new category ($myGoodObject->categoryId);
这应该给出myGoodObject的类别对象。然而,例如,若数据库中未定义categoryId(例如1000),则该类将抛出异常。
我该怎么抓住这个?从数据库中启动/加载有时可能不存在的对象的最佳实践是什么?如何避免失败?
谢谢!
编辑:
我试过这个:
try {
$c = new category (1000);
} catch (Exception $e) {return false;}
但没有奏效。
try
{
$c = new category ($myGoodObject->categoryId);
}
catch (Exception $e)
{
echo 'Caught exception: ', $e->getMessage(), "'n";
}
至于最佳实践,您应该首先尝试读取数据库以查看该值是否存在,如果不存在,则不尝试创建对象,从而避免出现异常。
如果抛出异常,请使用try。。捕获块
try {
//try assigning
catch (Exception $e) {
//do something
}
查看此处了解有关异常的更多详细信息
不要捕获它,只需在使用它之前确保它在那里…
if(isset($myGoodObject->categoryId)){
$c = new category ($myGoodObject->categoryId);
//...
}