【问题标题】:How to try - catch if any error occurs? [duplicate]如果发生任何错误,如何尝试 - 捕获? [复制]
【发布时间】:2013-01-31 08:26:14
【问题描述】:

可能重复:
How to catch curl errors in PHP

我有几行代码:

<?php
try {
    $my_curl = curl_init();

    curl_setopt($my_curl, CURLOPT_URL, $one_url); 
    curl_setopt($my_curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($my_curl, CURLOPT_BINARYTRANSFER, 1);
    $datum = curl_exec($my_curl);
    curl_close($my_curl);

    $my_image = imagecreatefromstring($datum);

} catch(Exception $e) {
    var_dump($e->getMessage());
}       
?>

在真实环境中运行时,某些包含图片的站点(如$one_url)无法访问或死机或...导致一行/或多行代码出错。

如果任何语句无法成功完成,我该如何尝试 - 捕获?换句话说,我喜欢 try - catch 的工作方式类似于... switch - case(不是 if else)。

任何建议将不胜感激!非常感谢。

【问题讨论】:

    标签: php try-catch


    【解决方案1】:

    您可以使用curl_error

    $datum = curl_exec($my_curl);
    if($datum === false) {
        echo 'Curl error: '.curl_error($ch);
    }
    

    【讨论】:

      【解决方案2】:

      为什么在返回 false 时不抛出异常?

      if ($curlResp === FALSE) {
          throw new Exception(); 
      }
      

      检查this
      返回值

      成功时返回 TRUE,失败时返回 FALSE。但是,如果设置了CURLOPT_RETURNTRANSFER 选项,它将在成功时返回结果,在失败时返回FALSE

      【讨论】:

        【解决方案3】:

        试试这个:

        if(curl_errno($my_curl))
        {
            echo 'error:' . curl_error($my_curl);
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-08-12
          • 2019-07-21
          • 2016-04-29
          • 2019-09-05
          • 2013-11-10
          相关资源
          最近更新 更多