避免多次尝试... catch块
问题描述:
我在课堂上有各种功能。在每个函数中,我使用try ... catch。有什么办法可以简化吗?我想创建一个错误类,它必须可以从我的项目中的任何文件访问。我不想在每个函数中使用try..catch,而应该将其自动定向到Error类。避免多次尝试... catch块
答
我不在函数本身中添加try catch,而是在函数被调用的页面中添加try catch。
如:
try
{
$faq_title = mysqli_real_escape_string($link, $_POST['faq_title']);
$faq_subtitle = mysqli_real_escape_string($link, $_POST['faq_subtitle']);
$desc = mysqli_real_escape_string($link, $_POST['desc']);
$faq_e = new Shopadmin();
$faq_e->add_faq($faq_title, $faq_subtitle, $desc);
$feedback = "<div class='succes'>FAQ added succesfully!</div>";
}
catch(Exception $e)
{
$feedback = "<div class='error'>";
$feedback .= $e->getMessage();
$feedback .= "</div>";
}
,并在我的功能我检查如果查询成功地或者不这样做,如果不是我抛出一个新的异常,将被获取,并存储到$反馈,我回声出的主要容器分区。
这种方式,你可以调用不同的功能withouth的有添加的尝试捕捉每个功能
我希望这可以帮助你
答
注册一个全局异常捕获器。这个函数将捕获任何未捕获的异常。您应该像使用register_session那样做,也就是在每个页面中包含的某个文件中,以便它可以在整个网站上运行。
参见:http://php.net/manual/en/function.set-exception-handler.php
但请注意,你不能从这样的异常中恢复(你不能处理错误并继续)。
ELMAH为ASP.net,我们所谈论的PHP这里 – Palantir 2009-11-06 10:58:17
哎呀,我的坏,只是匆匆的血。 – theraneman 2009-11-20 11:26:17