在我的PHP学习过程中,我一直在尝试阅读错误报告和处理的最佳实践,但语句因人而异,我一直在努力想出一个简单明了的处理错误的方法。应用。我对可能出错的事情使用异常,但在大多数情况下,我很难理解异常是否应该杀死应用程序并显示错误页面或者只是被捕获并静默处理。
似乎无法回避的事情是,有太多的报道吗?每次你调用一个函数都会出现可怕的错误,这意味着如果你要确认每一个函数调用,你将不得不用if语句填充页面,并找出其中一个失败可能产生的影响。有错误报告的简明文档或想法可以为我清除这一点吗?有最佳做法吗?良好错误处理的最佳例子是什么?
目前我执行以下操作:
答案 0 :(得分:3)
例外是你唯一没有理解的恕我直言:异常意味着不受你的控制,意味着被捕获从它们被引入的范围之外被处理。try块有一个特定的限制:它应包含相关的操作。例如,拿一个数据库试试catch块:
$array = array();
try {
// connect throws exception on fail
// query throws exception on fail
// fetch results into $array
} catch (...) {
$array[0]['default'] = 'me';
$array[0]['default2'] = ...;
...
}
如您所见,我将每个数据库相关的函数放在try块中。如果连接未通过查询并且未执行提取,则因为没有连接就没有意义。如果查询失败,则跳过提取,因为在获取没有结果时没有任何意义。如果出现任何问题,我有一个空的$数组来处理:所以我可以用默认数据填充它。
使用例如:
之类的例外$array = array();
try {
if (!file_exists('file.php')) throw new Exception('file does not exists');
include('file.php');
} catch (Exception $e) {
trigger_error($e->getMessage());
}
毫无意义。它只是一个较长的版本:
if (!file_exists('file.php')) trigger_error('file does not exists');
include('file.php');