如何尝试 - 捕获是否发生任何错误?

时间:2013-01-31 08:26:15

标签: php try-catch

  

可能重复:
  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)无法访问或死亡或......导致一行/多行代码变为错误。

如何尝试 - 捕获是否有任何声明无法成功完成?换句话说,我喜欢尝试 - 捕捉的作品就像...开关 - 案例(不是否则)。

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

3 个答案:

答案 0 :(得分:1)

您可以使用curl_error

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

答案 1 :(得分:0)

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

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

检查this
返回值

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

答案 2 :(得分:0)

试试这个:

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