错误和异常之间有什么区别?
我已经在网上和几本书中阅读了大量资源,但所提供的解释并不十分彻底。因此,我仍然感到困惑。
谢谢!
修改: 看起来我问了两个可能令人困惑的问题。我想要回答的主要问题是错误和异常之间的差异。所以,我已经编辑了上面更具体的内容。谢谢大家的回答。
答案 0 :(得分:6)
都不是。例外和错误是指代码出错的时候。用户或多或少地期望输入错误的登录信息。检查用户名/密码是否正确,如果没有,请将用户重定向回登录页面(header('location:login.php?failed=1');
),然后如果设置了$_GET['failed']
,则显示一条消息。这是最简单的方法。
关于例外/错误......你通常应该坚持例外。你抛出一个异常,然后你抓住它并处理它。我认为当你不知道如何处理catch块中的错误时,trigger_error
更多的是将错误传播回客户端。
答案 1 :(得分:5)
没有“应该”或“最好”的方法来进行错误处理。
一般来说,有两种类型的错误
请注意,这些都与您用于处理错误的特定PHP机制无关。
如果您使用例外...... 然后,我建议全面使用例外。 Register an exception handler并让它完成大部分工作 - including other PHP errors。登录详细信息无效?
class InvalidLoginException extends Exception
{
protected $message = 'Login information is incorrect. Please try again.';
}
然后你有很多选择来实现。
try {
$user->login(); // will throw and InvalidLoginException if invalid
}
catch ( InvalidLoginException $e )
{
// display an error message
}
或者,如果您这样选择,请让异常处理程序执行此操作。也许甚至以更灵活的方式
class ApplicationErrorException extends Exception{}
class InvalidLoginException extends ApplicationErrorException
{
protected $message = 'Login information is incorrect. Please try again.';
}
然后,在异常处理程序
中if ( $exception instanceof ApplicationErrorException )
{
// dislpay error message
}
但例外不是唯一的方法,by some not even considered a good way。
答案 2 :(得分:0)
首先,异常可以继续执行脚本。此外,trigger_error始终报告调用trigger_error的行和文件。