Thread Argumente/Parameter wo prüfen ?
(19 answers)
Opened by der_thomas at 2014-09-15 18:44 Quote Jaha, Du hast es ;) Also: Ab der Stelle, wo eine Exception fällt (croak, die, confess) hält das Script an. Passiert das in einem eval-Block, wird die Exception aufgefangen, Meldung (Begründung) in $@ und Du kannst außerhalb vom eval-Block entscheiden, wie es weitergehen könnte. Noch ein schönes Beispiel für die Objekterstellung: 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 28 29 30 31 32 33 # Konstruktor einer Klasse sub new{ my $class = shift; # Name der Klasse # Argumente in @_ z.B. als Hash # hier können wir default-Werte setzen # da ist auch gleich zu sehen, was fakt ist my %cfg = ( foo => undef, bar => '', @_); # @_ überschreibt die vorbelegten Werte # Pflichtfelder setzen wir auf undef return eval{ # Argumente prüfen # wenn was nicht passt, Exception schmeißen # code hierzu... my $self = bless{ # Attribute foo => $cfg{foo} or croak "foo wurde nicht übergeben", }, $class; # letzte Zeile im Block ist der returnvalü $self; # das wird zurückgegeben, wenn alles geklappt hat }; } # und draußen... my $obj = Class->new(%argumente) || do{ # hier machen wir das, was notwendig ist, wenn # das Objekt nicht erstellt werden konnte # Reason in $@ }; Last edited: 2014-09-18 22:11:15 +0200 (CEST) |