Открываю сокет самым обычным образом:
$socket = fsockopen("tcp://$hostname", $port, $errno, $errstr, 3);
Предполагаю, что если что-то не так (порт закрыт, например), то
$socket == false
и хочу сообщить об этом пользователю. Однако у Yii2 свое мнение на этот счет и оно на этой строке падает, сообщая об ошибке:
PHP Warning – yii\base\ErrorException
fsockopen(): unable to connect to tcp://<...> (Connection refused)
Попытка отловить исключение ничего не дает. Результат ровно тот же.
try {
$socket = fsockopen("tcp://$hostname", $port, $errno, $errstr, 3);
// do something
fclose($socket);
} catch(ErrorException $e) {
// do nothing
}
Что я делаю не так?