处理php页面上错误的最佳方法?
现在我的页面看起来像这样:
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应用程序中处理错误(无论是否致命)的最佳方法是什么?我不想只是死在空白屏幕上,因为那将是非常不友好的用户,而是想在页面正文中输出一条消息,仍然允许页眉和页脚显示。
感谢您的建议!