PHP何时使用try/catch?

kat*_*son -1 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);

    } catch (Exception $e) {
        echo 'Error: ', $e->getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

我想知道的是,是否需要尝试catch块?我怀疑的原因是因为如果出现问题我的FTP类会抛出错误.例如,这是连接功能

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;
}
Run Code Online (Sandbox Code Playgroud)

如果在类中处理错误,是否需要try/catch?

谢谢

小智 5

抛出异常时,不会执行其后面的代码,PHP将尝试查找匹配的"catch"块.如果未捕获异常,将发出致命错误,并显示"未捕获异常"消息.

适当的异常代码应包括:

  • 尝试 - 使用异常的函数应该在"try"块中.如果异常未触发,则代码将继续正常进行.但是,如果异常触发,则会抛出异常
  • 抛出 - 这是触发异常的方式.每个"投掷"必须至少有一个"抓住"
  • Catch - "catch"块检索异常并创建包含异常信息的对象