PHP何时使用try/catch?
我只是想知道一些事情。在index.php中,我目前正在做类似的事情PHP何时使用try/catch?,php,Php,我只是想知道一些事情。在index.php中,我目前正在做类似的事情 function performFtpOperation() { global $config; try { $ftp = new FTP\FtpClient(); $ftp->connect($config::FTP_SERVER); $ftp->login($config::FTP_USER, $config::FTP_PASSWORD);
function performFtpOperation() {
global $config;
try {
$ftp = new FTP\FtpClient();
$ftp->connect($config::FTP_SERVER);
$ftp->login($config::FTP_USER, $config::FTP_PASSWORD);
} catch (Exception $e) {
echo 'Error: ', $e->getMessage();
}
}
我想知道的是,是否需要尝试捕捉块?我质疑它的原因是,如果出现问题,我的FTP类会抛出错误。例如,这是connect函数
public function connect($host, $ssl = false, $port = 21, $timeout = 90)
{
if ($ssl) {
$this->conn = @$this->ftp->ssl_connect($host, $port, $timeout);
} else {
$this->conn = @$this->ftp->connect($host, $port, $timeout);
}
if (!$this->conn) {
throw new Exception('Unable to connect');
}
return $this;
}
那么,如果在类中处理错误,是否需要try/catch呢
谢谢既然您正在从FTP代码中抛出异常,那么是的。当抛出异常时,它后面的代码将不会执行,PHP将尝试查找匹配的“catch”块。 如果未捕获异常,将发出致命错误并显示“未捕获异常”消息 适当的例外代码应包括:
connect类抛出异常,您需要捕获并处理代码中的某个地方。根据您的应用程序设计和需求,在何处处理它取决于您自己 如果您决定在
performFtpOperation
函数中处理它们,那么您对try…catch
的使用是正确的
如果您没有在
performftp操作
函数中处理它们,那么它们将冒泡到调用performftp操作
函数的代码中,如果您喜欢使用try…catch
,您可以在那里捕获并处理它们,类似于您在此处所做的操作。记住,你需要在某个地方抓住他们。谢谢你提供的信息,一个简单的问题。如果我的登录函数也抛出了一个异常,那么我应该在单独的try/catch块中同时拥有connect和login吗?