Schrift
[thread]773[/thread]

CGI::Application: Fehlerbehandlung



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
MartinR
 2006-07-10 12:57
#8279 #8279
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
Hi,

ich lese mich gerade in 'CGI::Application' ein. Der 'error_mode' im script wird leider nur ausgeführt, wenn in einer sub ein Fehler auftritt. Wenn aber eine nicht definierter run_mode übergeben wurde stirbt das gesamte Script mit "No such run mode 'mode4' ..."

Wie kann ich also den Fehler bei falsch übergebenem run_mode abfangen?

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
sub setup {
my $self = shift;
$self->start_mode('mode1');
$self->mode_param('rm');
$self->error_mode('sub_fehler');
$self->run_modes(
'mode1' => 'sub_a',
'mode2' => 'sub_b',
'mode3' => 'sub_c',
);
}


BTW: Hat schon jemand mit diesem Modul gearbeitet? Erfahrungen, Pro und Contra ...
renee
 2006-07-10 13:24
#8280 #8280
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Laut Doku sollte es aber mit error_mode funktionieren.

Ich habe mit dem Modul letztens das erste Mal gearbeitet. Ich bin sehr zufrieden damit, da die Entwicklung doch recht schnell geht und es existiert sogar ein CPAN:Plugin für CPAN:HTML::Template::Compiled...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2006-07-10 14:07
#8281 #8281
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=renee,10.07.2006, 11:24]Laut Doku sollte es aber mit error_mode funktionieren.[/quote]
Danke Renee schon mal für die Antwort. Dein posting hier war übrigens auch der Grund warum ich mir 'CGI::Application' angesehen habe.

Die Fehlerbehandlung funzt aber bei mir leider nicht wie gewünscht. Wenn ich folgendes schreibe gehts:

Code: (dl )
1
2
3
sub_c {
die;
}


Aber eben leider nicht wenn ich das script wie folgt aufrufe:

/?rm=mode_irgendwas

Für was braucht man eigentlich das Plugin für HTC? Der Sinn ist mir nicht so ganz klar. Ich habe HTC ganz normal eingebunden und es funzt.
renee
 2006-07-10 14:14
#8282 #8282
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich muss das heute nachmittag mal zu Hause testen. Habe hier im Moment keine Möglichkeit...

Man kann HTC natürlich auch ganz normal einbinden. Ich nutze nur ganz gern bestehende Infrastrukturen...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-07-10 14:23
#8283 #8283
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mit diesem Workaround kannst Du arbeiten:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
sub cgiapp_prerun{
my ($self) = @_;
my $mode = $self->query()->param('mode');
print qq~Content-type: text/html

<html>
<body>
<h1>Fataler Fehler *fg*</h1>
</body>
</html>~;
exit(0);
}


Edit: Wobei bei Dir anstatt 'mode' halt der Parametername für Deinen run_mode stehen muss...\n\n

<!--EDIT|renee|1152527049-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-07-10 14:26
#8284 #8284
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kommando zurück, man muss natürlich noch überprüfen, ob es überhaupt ein Fehler ist:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sub cgiapp_prerun{
my ($self) = @_;
my $mode = $self->query()->param('mode');
unless($self->can($mode)){
print qq~Content-type: text/html

<html>
<body>
<h1>Fataler Fehler *fg*</h1>
</body>
</html>~;
exit(0);
}
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2006-07-10 14:37
#8285 #8285
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wer lesen kann ist klar im Vorteil! In der Doku findest Du, dass der Modus AUTOLOAD den default-mode festlegt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
MartinR
 2006-07-10 14:52
#8286 #8286
User since
2004-06-17
305 Artikel
BenutzerIn
[default_avatar]
[quote=renee,10.07.2006, 12:37]Wer lesen kann ist klar im Vorteil! In der Doku findest Du, dass der Modus AUTOLOAD den default-mode festlegt...[/quote]
Danke! Ich tue Buße und werde Dich in mein Nachtgebet einschliesen ...
pktm
 2006-07-10 15:03
#8287 #8287
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Es gibt da überigens noch ein nettes Plugin, das dir beim Entwickeln hefen könnte: CGI::Application::Plugin::DebugScreen
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2006-07-10 15:03
#8288 #8288
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich hab's ja selbst erst übersehen... War also kein Vorwurf an Dich!\n\n

<!--EDIT|renee|1152529443-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2006-07-10 12:57.