LINUX.ORG.RU

[perl][dbus]Обработка ошибок


0

1

Есть некий код:

use Net::DBus;

sub OnError {
     .......
}

my $session = Net::DBus->session->get_service("org.mpris.$service") or &OnError;

Если Я правильно понимаю, в теории, если $service не создан, то должна сработать функция OnError, но работает все иначе, вылазит сообщение : org.freedesktop.DBus.Error.ServiceUnknown: The name org.mpris.$ServiceName was not provided by any .service files.

Вопрос: Что Я делаю не так ? И как заставить perl что бы он вызывал данную функцию если сессия не создана ?

★★★★★

Ответ на: комментарий от hizel

Благодарю, все получилось.

my $session;
eval {
    $session = Net::DBus->session->get_service("org.mpris.$service");
};

&OnError unless $session;

joy4eg ★★★★★ ()

Если Net::DBus не вызывает внутрях die, то eval нафиг не нужен.

slovazap ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.