我正在开发一些项目。我想控制不同的错误。我知道在所有流行的框架和 php 项目中都有不同的异常。但我认为这不是必需的工作。如果发生错误,我们可以用我们的消息制作 die()。 1. Exceptions 的主要优点是什么? 2. 我可以用 die() 控制我的错误吗?
谢谢。
最佳答案
好吧,你可以使用 die()
。但这使得所有错误都是致命的。这意味着您根本无法尝试从错误中恢复。在某些情况下,这样做很好。
但在大多数情况下,您可能希望能够在错误发生后进行“清理”,或者尝试另一种方法。这是异常派上用场的地方......它们让你选择在哪里以及是否要处理错误。它们让您尝试从错误中优雅地恢复。
例如,假设您有一个从远程服务器下载文件的方法:downloadFromRemoteServer($address);
如果你使用die()
,如果下载失败,脚本终止。故事结束。
但如果您使用异常(exception),您可以尝试另一台服务器,甚至尝试不同的方法(HTTP 与 FTP 等):
try {
$file = downloadFromRemoteServer('http://example.com/foo');
} catch (DownloadFailedException $e) {
try {
$file = downloadFromRemoteServer('http://secondtry.example.com/foo');
} catch (DownloadFailedException $e2) {
die('Could not download file');
}
}
return $file;
但请记住,异常仅在特殊情况下才有用。它们并不意味着用于任何可能的错误。例如,如果用户没有正确验证他们的电子邮件地址,这并不异常(exception)。但是如果你无法连接到数据库服务器,或者在数据库中有冲突,那将是一个异常情况......
关于php OOP 异常或 die()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3845494/