Ale*_*tau 2 php oop coding-style exception die
我正在开发一些项目.我想控制不同的错误.我知道在所有流行的框架和php项目中都有不同的异常.但我认为这不是必需的工作.如果发生错误,我们可以使用我们的消息制作die().1.例外的主要优点是什么?2.我可以用die()控制我的错误吗?
谢谢.
好吧,你可以用die().但这会使所有错误都致命.这意味着您无法尝试从错误中恢复.在某些情况下,这样做很好.
但在大多数情况下,您可能希望能够在错误后"清理",或尝试其他方法.这是异常派上用场的地方......它们让您选择在哪里以及是否要处理错误.它们让您尝试从错误中优雅地恢复.
例如,假设您有一个从远程服务器下载文件的方法: downloadFromRemoteServer($address);
如果使用die(),如果下载失败,脚本将终止.故事结局.
但是如果你使用异常,你可以尝试另一个服务器,甚至尝试不同的方法(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;
Run Code Online (Sandbox Code Playgroud)
但请记住,例外仅对特殊情况有用.它们并不意味着用于任何可能的错误.例如,如果用户没有正确验证他们的电子邮件地址,那也不例外.但是如果你无法连接到数据库服务器,或者数据库中存在冲突,那将是一个例外情况......