dns_get_record():发生临时服务器错误。

时间:2016-03-29 09:54:54

标签: php laravel exception dns

我查询了一大堆地址,有些是在线的,有些则不是。我似乎无法解决这个错误,即使捕获异常也失败了:(

 dns_get_record(): A temporary server error occurred. 


        try {
            $result = dns_get_record('_minecraft._tcp.' . $addr, DNS_SRV);
        }
        catch (Exception $e) {
            return [$addr,$port];
        }

如果发生此错误,我想继续脚本,跳过记录,但目前脚本暂停。

任何帮助表示赞赏!!

2 个答案:

答案 0 :(得分:5)

我也无法抓住这个例外。我如何理解它是一个PHP的错误: https://bugs.php.net/bug.php?id=73149

但我找到了另一种解决方案。调用此函数时,可以使用@。当您调用此符号时,此符号会终止所有错误。它看起来像那样:

$dns = @dns_get_record($domain, DNS_A);
if(!$dns){
    return false;
}

答案 1 :(得分:-2)

试试这个:

     try {
         $dns = dns_get_record($domain, DNS_A);
     }
     catch (Exception $e) {
         if ($e->getMessage() !== 'dns_get_record(): A temporary server error     occurred.') {
             throw $e;
         }
         $dns = false;
     }