例如,我的用法是:
$check = 'no';
if($check == 'yes') {
//do stuff
} else {
die('Error found');
}
许多开发人员使用的是:
if($check == 'yes') {
//do stuff
} else {
throw new Exception('Error found.');
}
答案 0 :(得分:7)
我想为大家节省一些麻烦,并在此向您推荐此堆栈:PHP Error handling: die() Vs trigger_error() Vs throw Exception 对它们的用途非常详细的解释,我相信它不能说更好。
答案 1 :(得分:0)
哪种方法“更好”?
这取决于您的需求。不能说哪个更好(并且还有其他的错误处理方法,当你真正想要讨论错误处理时,你应该考虑到这个网站可能不是正确的地方)。
任何好处都是抛出异常而不是停止执行脚本?
可以捕获异常,无法捕获die
。例如,如果你想测试你的代码,die
通常是一个显示阻止。
除此之外,异常可以携带更多信息并更精确地传递。例如,除了die
之外,该消息更易于访问。异常会保留文件和行所在的位置。对于调试,有堆栈跟踪等等。
答案 2 :(得分:0)
例外情况更好(在设计大型网站时),因为:
您应该只在较小的脚本和页面中使用die
,在这些脚本和页面中您不需要设置错误以供使用或出现致命错误(不能将主库包含在索引或类似内容中)。
答案 3 :(得分:0)
如果发生某些异常情况(数据库连接或查询,页面或文件未找到......),然后throw new Exception
它适合您,您可以同时使用catch
。然后可能将错误记录到文件,将邮件发送给管理员,然后使用die("Some textual message to user.");
。如果您不想使用die(),则可以向用户显示未找到的404或500内部错误页面。