From 7615088320ac1987ee7eaeeef6c81e68f3c549c0 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 28 Jun 2011 19:45:13 +0200 Subject: VRR.pm: Add Travel::Routing::DE::VRR::Exception base class --- bin/efa | 5 +++-- lib/Travel/Routing/DE/VRR.pm | 19 +++++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/bin/efa b/bin/efa index b11018b..c916ca0 100755 --- a/bin/efa +++ b/bin/efa @@ -72,8 +72,9 @@ sub check_for_error { my ($eval_error) = @_; if ( not defined $efa ) { - if ( $eval_error - and ref($eval_error) =~ m{^Travel::Routing::DE::VRR::Exception}x ) + if ( $eval_error + and ref($eval_error) + and $eval_error->isa('Travel::Routing::DE::VRR::Exception') ) { handle_efa_exception($eval_error); } diff --git a/lib/Travel/Routing/DE/VRR.pm b/lib/Travel/Routing/DE/VRR.pm index 62d6a3e..d486a6e 100644 --- a/lib/Travel/Routing/DE/VRR.pm +++ b/lib/Travel/Routing/DE/VRR.pm @@ -9,22 +9,30 @@ use LWP::UserAgent; use XML::LibXML; use Exception::Class ( + 'Travel::Routing::DE::VRR::Exception', 'Travel::Routing::DE::VRR::Exception::Setup' => { + isa => 'Travel::Routing::DE::VRR::Exception', description => 'invalid argument on setup', fields => [ 'option', 'have', 'want' ], }, 'Travel::Routing::DE::VRR::Exception::Net' => { + isa => 'Travel::Routing::DE::VRR::Exception', description => 'could not submit POST request', fields => 'http_response', }, - 'Travel::Routing::DE::VRR::Exception::NoData' => - { description => 'got no data to parse', }, + 'Travel::Routing::DE::VRR::Exception::NoData' => { + isa => 'Travel::Routing::DE::VRR::Exception', + description => 'got no data to parse', + }, 'Travel::Routing::DE::VRR::Exception::Ambiguous' => { + isa => 'Travel::Routing::DE::VRR::Exception', description => 'ambiguous input', fields => [ 'post_key', 'possibilities' ], }, - 'Travel::Routing::DE::VRR::Exception::NoConnections' => - { description => 'got no connections', }, + 'Travel::Routing::DE::VRR::Exception::NoConnections' => { + isa => 'Travel::Routing::DE::VRR::Exception', + description => 'got no connections', + }, ); our $VERSION = '1.3'; @@ -759,6 +767,9 @@ The following methods act like the arguments to B. See there. =head1 DIAGNOSTICS +When encountering an error, Travel::Routing::DE::VRR returns a +Travel::Routing::DE::VRR::Exception object. + Dies with a backtrace when anything goes wrong. =head1 DEPENDENCIES -- cgit v1.2.3