2013-01-02 56 views
0

我正在使用this script here并且它并不总是想连接到我设置的服务器。如果没有,则会显示错误"Failed to receive status"。我想知道如何测试以查看是否发生这种情况并将其放入if语句中?测试连接是否为错误

例如:

if (isError) return false; 

这里是一个检查错误或不执行脚本的一部分:

if(!$Data) 
     { 
      throw new MinecraftQueryException("Failed to receive status."); 
     } 

回答

3

只需使用try ... catch块。但请确保您正在记录异常消息。这将有助于未来的调查。

try 
{ 
    $Query = new MinecraftQuery(); 
    // .. do mine craft connection 
    $Query->Connect('...', 25565); 
    print_r($Query->GetInfo()); 
} catch(MinecraftQueryException $mqe){ 
    // log $mq->getMessage() for future investigation 
    return false; 
} 
+0

我在调用对象时能做到这一点吗?例如,尝试{echo $ cbMain-> GetInfo()['Players']} catch(error){}它是否在对象内部? – devs

+0

是的,在试块中做所有正常的操作。 –

+0

@DEVS查看更新。另请参阅README.md https://github.com/xPaw/PHP-Minecraft-Query/blob/master/README.md –

1

你要围绕try/catch块内Connect调用,以捕获异常,然后把故障代码的catch块。您可以在PHP manual中了解有关例外情况的更多信息:

try { 
    $query->Connect(); 
} catch(MinecraftQueryException $exception) { 
    return false; 
}