私は単純な php ライブラリを持っています https://github.com/MonsterGfx/PHP-MPD-Client
私のsymfony2では問題なく動作しますが、mpdサーバーがオフラインになるまでは。MPDの状態を確認したい -
static function checkSource(\MDS\SiteBundle\Entity\Source $source)
{
try {
MPD::connect($source->getMpdpassword(), $source->getMpdhost(), $source->getMpdport());
} catch (MPDConnectionFailedException $e) {
return false;
}
$ping = MPD::send("ping");
if ($ping['status'] == 'OK') {
return true;
} else {
return false;
}
}
問題は、サーバーがオフラインのときにスローされることです
Warning: fsockopen(): unable to connect to planeset.ru:6600 (Connection refused) 500 Internal Server Error - ContextErrorException
しかし、エラーをキャッチする必要があります。ライブラリにコードが表示されます
if(!static::$fp)
{
// no connection
throw new MPDConnectionFailedException("$errstr ($errno)");
}
エラーをキャッチできず、500 エラーが発生するのはなぜですか? 私は間違った方法で何をしますか?