Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

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 (Abbot) 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 (Curate) 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?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (6)
As of 2014-09-20 13:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (159 votes), past polls