为了在我的站点中建立一个良好的错误处理系统,我花了几天的时间。
我的错误处理系统只关注意外错误,例如 mysqli 错误
我的站点运行许多 mysqli 查询,这意味着可能会发生错误。
我的系统有 3 个部分,每个部分我都不确定它在最佳实践和效率中的位置。
第 1 步:捕捉错误
$query = "
SELECT * FROM `users_account_activations` WHERE `user_ip` =?
";
$statement = $databaseHandler->mysqli->prepare($query);
$statement->bind_param('s', $userIp);
$statement->execute();
$statement->store_result();
//record error, if any
$databaseHandler->mysqli->error ? error = true : error = false;
这是在准备好的语句中捕捉错误的好方法吗?
在准备阶段会不会在查询结束时查找错误而不是捕获错误?或者当准备阶段失败时,所有其他失败(比如倒下的多米诺骨牌)
第二步:记录错误
error_log("Could not process query...", 3, 'log/default.log');
- 这是记录错误的合适方式吗?与打开文件蒸汽的系统有关吗?
第 3 步:处理数学后
既然出现了错误,我需要决定如何继续前进,我的系统将退出脚本并进入一个标准错误页面,上面写着“opps!出了点问题”。
header('location: errorpage.php'); exit();
- 更改标题是这样做的好方法吗?我知道关于何时可以使用标题的限制。
有没有更好的方法来处理错误,这个系统是为意外错误设计的。预期的错误会得到处理并以不同的方式显示给用户。