我的代码中有一些类。从这些类中我发起了对象,比如说
$c = new category ($myGoodObject->categoryId);
这应该给出myGoodObject的类别对象。但是,例如,如果未在数据库中定义类别1000的categoryId,则该类将引发异常。
如何抓住这个?从数据库启动/加载对象有时可能不存在的最佳做法是什么?如何避免失败?
谢谢!
编辑:
我试过了:
try {
$c = new category (1000);
} catch (Exception $e) {return false;}
但它不起作用。
答案 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);
//...
}