我在课堂上有各种各样的功能。在每个函数中我使用try ... catch。有什么方法可以简化这个吗?我想创建一个错误类,它必须可以从我的项目中的任何文件访问。我不想在每个函数中使用try..catch,而是应该自动定向到Error类。
答案 0 :(得分:1)
答案 1 :(得分:1)
我不在函数本身中添加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>";
}
并在我的函数中检查查询是否成功完成,如果不是,我抛出一个新的异常将被捕获并存储到$ feedback中,我在主容器div上回显。
通过这种方式,您可以调用不同的函数,而无需在每个函数中添加try catch
我希望这可以帮助你
答案 2 :(得分:0)
注册全局异常捕获器。此函数将捕获任何未捕获的异常。您应该像使用register_session一样,即在每个页面中包含的某个文件中执行此操作,以便它可以在整个站点中运行。
请参阅:http://php.net/manual/en/function.set-exception-handler.php
但请注意,您无法从此类异常中恢复(您无法处理错误并继续)。
答案 3 :(得分:-1)
基本上这是一个要求,因为它们变大了几乎所有项目。解决方案是创建错误处理模块。您可以从头开始创建一个或使用已经存在的令人敬畏的模块,如ELMAH。