1 2 3
croak "Gregorianisches Datum ungültig, das Jahr ist kein Schaltjahr\n"; # oder croak "Eingegebens Datum ungültig, das Jahr wurde nicht angegeben\n";
... at Response.pm line 54
$framework->exception("Input", "Fehlermeldung...");
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
sub run { # gewünschtes modul und funktion ermitteln # request erstellen eval { # modul/funktion aufrufen }; if ($@) { # abfragen, ob es ein Exception-Objekt vom Framework ist # dementsprechend die Ausgabe generieren # falls kein bekanntes Exception-Objekt, generische Fehlermeldung # anzeigen und Fehler im errorlog ausgeben } } sub exception { my ($self, $class, $text) = @_; croak WWW::Battie::Exception->new({ class => $class, text => $text, }); }
1
2
3
4
5
[%if error.message_too_long %]<div class="error">
[%translate id=error_message_too_long %]
</div>
[%elsif error.... %]...
[%/if %]
1
2
3
4
5
$ perl -MCarp -wE'croak "test"'
test at -e line 1
$ perl -MCarp -wE'croak "test\n"'
test
at -e line 1
2012-01-22T20:41:23 rostiDiese Unterdrückung funktioniert auf meiner Testumgebung einwandfrei, nach dem Hochladen zum Provider musste ich jedoch heute feststellen, dass der caller, also das '... at Response.pm' dennoch gezeigt wird.
Woran kann das liegen?
Quotegibt es evntl. eine weitere/andere Möglichkeit außer "\n", dies abzustellen?
die "Fehlermeldung\n";
1 2 3
$self->_initialize; # einer der drei Werte ist gesetzt eval{ $self->_validate }; return $@ ? undef : $self;
1
2
3
/usr/lib/perl5/5.8.7/Carp.pm
/usr/lib/perl5/5.8.7/CGI/Carp.pm
/usr/lib/perl5/5.8.7/Carp/Heavy.pm
open STDERR, '>/dev/null';
1 2 3 4 5 6 7 8 9 10 11
#!/usr/bin/perl use warnings; use strict; $SIG{__DIE__} = sub { print "Hallo\n"; }; die;
rostiCode (perl): (dl )die "Fehlermeldung\n";
pq