目前我的页面看起来像这样:
if($_GET['something'] == 'somevalue')
{
$output .= 'somecode';
// make a DB query, fetch a row
//...
$row = $stmt->Fetch(PDO::ASSOC);
if($row != null)
{
$output .= 'morecode';
if(somethingIsOK())
{
$output .= 'yet more page output';
}
else
{
$error = 'something is most definitely not OK.';
}
}
else
{
$error = 'the row does not exist.';
}
}
else
{
$error = 'something is not a valid value';
}
if($error == '') // no error
{
//display $output on page
}
else // an error
{
// display whatever error occurred on the page
}
我目前的做法可行,但对于显而易见的事情来说非常繁琐和乏味:比如在我的代码中间调用一个函数,或者想要检查一个变量的值,或者验证一个数据库查询是否返回了有效结果,如果它失败了,我想输出一个错误?我必须再做一个if/else块并将所有代码移动到新的if块内部。这似乎不是一种明智的做法。我一直在阅读关于try/catch的内容,并考虑将我的所有代码放在try语句中,然后让代码依次运行,不需要任何if/else块,如果出现问题就抛出异常。根据我所读的内容,这会停止执行并直接跳转到catch块(就像失败的if语句会进入else块一样),在那里我可以输出错误消息。但是这是一种可接受或标准的做法吗?
在构建和输出HTML页面的PHP应用程序中处理错误(致命或非致命)的最佳方法是什么?我不想只是用空白屏幕死掉,因为那对用户很不友好,而是想在页面正文中输出一条消息,同时允许页眉和页脚显示。
感谢您的建议!
exit($error)
,例如:if($some_error == TRUE){exit('Error.');}
希望这不是一个不好的做法。 - Abdulazizexit
。我有一个名为exitApp($error)
的函数,它:(1)显示标题(2)回显$error
(3)显示页脚(4)最后退出应用程序。 - Abdulaziz