Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Perl SNMP Error Handling

by skunix (Novice)
on Jul 11, 2013 at 18:02 UTC ( #1043802=perlquestion: print w/ replies, xml ) Need Help??
skunix has asked for the wisdom of the Perl Monks concerning the following question:

I am polling SNMP data from a list of devices using the SNMP module based off of the Net-SNMP library.

Everything works fine when I make a new SNMP::Session with an IP address that is reachable however if the IP is unreachable the program crashes when I try to get the SNMP data like so...

my $vars = new SNMP::VarList(['sysDescr',0]['sysUpTime',0]); my ($descr,$uptime) = $snmp->get($vars);

Which will crash with the follow error...

Can't call method "get" on an undefined value at...

Is there a way to handle this error without crashing?

Comment on Perl SNMP Error Handling
Select or Download Code
Re: Perl SNMP Error Handling
by choroba (Canon) on Jul 11, 2013 at 19:01 UTC
    You can use eval or Try::Tiny.
    my ($descr, $uptime); if (eval { ($descr, $uptime) = $snmp->get($vars); 1 }) { ... } else { warn $@; }
    لսႽ ᥲᥒ⚪⟊Ⴙᘓᖇ Ꮅᘓᖇ⎱ Ⴙᥲ𝇋ƙᘓᖇ
Re: Perl SNMP Error Handling
by hippo (Priest) on Jul 11, 2013 at 19:08 UTC

    Of course. Simply test the defined nature of your object before trying to call the method.

    if (defined $snmp) { ($descr,$uptime) = $snmp->get($vars); } else { die 'Horrors! My $snmp object is undefined!'; }

    ... or similar.

      Man... I feel like an idiot -_-

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1043802]
Approved by Perlbotics
Front-paged by toolic
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (13)
As of 2015-02-27 08:45 GMT
Find Nodes?
    Voting Booth?

    On my keyboard, Caps lock is:

    Results (441 votes), past polls