Umstellung Form::throw_on_error auf Verwendung von Exception::Lite anstelle von Hashrefs
authorMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 3 May 2011 15:27:07 +0000 (17:27 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Thu, 5 May 2011 09:24:20 +0000 (11:24 +0200)
SL/BackgroundJob/CreatePeriodicInvoices.pm
SL/Form.pm
SL/X.pm [new file with mode: 0644]

index c725a6f..559fd02 100644 (file)
@@ -240,7 +240,7 @@ sub _print_invoice {
     eval {
       $form->parse_template(\%::myconfig);
       1;
-    } || die $EVAL_ERROR->{error};
+    } || die $EVAL_ERROR->getMessage;
   });
 }
 
index b634217..b3a3e23 100644 (file)
@@ -62,6 +62,7 @@ use SL::Menu;
 use SL::OE;
 use SL::Template;
 use SL::User;
+use SL::X;
 use Template;
 use URI;
 use List::Util qw(first max min sum);
@@ -458,7 +459,7 @@ sub hide_form {
 
 sub throw_on_error {
   my ($self, $code) = @_;
-  local $self->{__ERROR_HANDLER} = sub { die({ error => $_[0] }) };
+  local $self->{__ERROR_HANDLER} = sub { die SL::X::FormError->new($_[0]) };
   $code->();
 }
 
diff --git a/SL/X.pm b/SL/X.pm
new file mode 100644 (file)
index 0000000..ce7552c
--- /dev/null
+++ b/SL/X.pm
@@ -0,0 +1,9 @@
+package SL::X;
+
+use strict;
+
+use Exception::Lite qw(declareExceptionClass);
+
+declareExceptionClass('SL::X::FormError');
+
+1;