snmp — сообщения об ошибках PHP snmp2_set (возвращаемые значения)

В моем PHP-коде я всегда предпочитаю «родные» PHP-функции snmp, такие как snmp2_set(),

Но, к сожалению, вышеуказанная функция не обеспечивает достаточной обратной связи.

Из руководства:

Return Values:

Returns TRUE on success or FALSE on failure.

В случае неудачного выполнения в моем apache2 error.log я вижу подробные сообщения об ошибках / предупреждениях, например:

PHP Warning:  snmp2_set(): Error in packet at 'enterprises.9.9.116.1.4.1.1.2.8048': wrongValue (The set value is illegal or unsupported in some way) in /var/www/modules/myfunc.php on line 2238 ...

Возможно, что подобное сообщение возвращается из функции snmp2_set ()?

0

Решение

Нет способа получить это сообщение напрямую от этой функции, потому что именно так оно работает в PHP. Многие методы вернут только true/false а затем поднять предупреждение с точным сообщением.

Вы все еще можете получить доступ к этому сообщению, позвонив error_get_last(), Он вернет вам массив с подробной информацией об ошибке (http://php.net/manual/en/function.error-get-last.php).

Сказав это, я бы порекомендовал обрабатывать все предупреждения / уведомления как исключения, регистрируя собственный обработчик ошибок, который преобразует такие предупреждения / уведомления в исключение, которое вы позже можете перехватить в своем коде:

function myErrorHandler($errno , $errstr){
throw new MyException($errstr, $errno);
}

set_error_handler("myErrorHandler");

а потом:

try {
snmp2_set(/* ... */);
} catch (MyException $e) {
$e->getMessage(); // Here you will have your error message
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]