Thread Exceptions (18 answers)
Opened by roooot at 2010-03-21 13:46

MatthiasW
 2010-03-21 18:34
#135108 #135108
User since
2008-01-27
367 Artikel
BenutzerIn
[default_avatar]
2010-03-21T16:54:49 roooot
TryCatch reagiert auf den "die" Befehl. Ich habe allerdings nicht herausgefunden, wie man hier verschiedene "Exceptions" werfen kann. Sprich er springt in den catch Block und untersucht dann wohl iwie die Rückmeldung, die mit dem "die" übergeben wurde mittels "where". Naja.

Also das die(...) wirft ja gerade die Exception und mittels catch (...) {...} kann man doch sehr gut darauf reagieren:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl
use 5.010;
use strict;
use warnings;
use TryCatch;

try {
    Exception::Test->throw('Error!') if <STDIN> eq "test\n";
    Exception->throw('Error!');
} # try
catch (Exception::Test $e) {
    say "Exception::Test: ". $$e;
} # catch
catch ($e) {
    say "Other: ". $$e;
} # catch

package Exception;

sub throw {
    my( $class, $error ) = @_;
    die bless \$error, $class;
} # throw

package Exception::Test;
#edit:
use parent -norequire, 'Exception';

Ich benutze es zwar nicht, aber ich finde es sieht wirklich handlich aus!

MfG
Last edited: 2010-03-21 21:11:17 +0100 (CET)
perl -E'*==*",s;;%ENV=~m,..$,,$&+42;e,$==f;$"++for+ab..an;@"=qw,u t,,print+chr;sub f{split}say"@{=} me"'

View full thread Exceptions