PHP何时使用try/catch?

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);

我只是想知道一些事情。在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();
    }
}
我想知道的是,是否需要尝试捕捉块?我质疑它的原因是,如果出现问题,我的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”块。 如果未捕获异常,将发出致命错误并显示“未捕获异常”消息

适当的例外代码应包括:

  • Try-使用异常的函数应位于“Try”块中。如果未触发异常,代码将继续正常运行。但是,如果异常触发,则会“抛出”异常
  • 抛出-这是触发异常的方式。每个“投掷”必须至少有一个“接球”
  • Catch-一个“Catch”块检索一个异常并创建一个包含异常信息的对象

    如果您使用例外,您需要尝试Catch,否则您将生成致命错误,并且您的脚本/站点将在此时停止工作,因此try/Catch是例外处理的一部分

    您可以在php手册中了解这一点


    connect类抛出异常,您需要捕获并处理代码中的某个地方。根据您的应用程序设计和需求,在何处处理它取决于您自己

    如果您决定在
    performFtpOperation
    函数中处理它们,那么您对
    try…catch
    的使用是正确的


    如果您没有在
    performftp操作
    函数中处理它们,那么它们将冒泡到调用
    performftp操作
    函数的代码中,如果您喜欢使用
    try…catch
    ,您可以在那里捕获并处理它们,类似于您在此处所做的操作。记住,你需要在某个地方抓住他们。

    谢谢你提供的信息,一个简单的问题。如果我的登录函数也抛出了一个异常,那么我应该在单独的try/catch块中同时拥有connect和login吗?