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