Thread Argumente/Parameter wo prüfen ?
(19 answers)
Opened by der_thomas at 2014-09-15 18:44 Quote Mach Dir ersteinmal klar, was eine Klassenmethode ist: Sie wird mit dem Namen der Klasse aufgerufen, z.B.: Etwas ausführlicher: Code (perl): (dl
)
1 2 3 4 5 6 7 use Class; # Klassenmethode my $instance = Class->new(); # Erstelle Objekt, eine Instanz der Klasse # Mit der Instanz eine Methode aufrufen $instance->foo(); Argumente prüfen und Fehlerbehandlung, Unterscheide zwischen: 1) Fehler die ein Programmierer in der Anwendung der Class-API macht 2) Fehler die ein Benutzer bei einer Eingabe ins Programm macht Wenn Du eigene Module schreibst, hast Du die Möglichkeit, beide Fälle im Modul abzuhandeln. Hier ist ein Beispiel von mir: http://rolfrost.de/sca.pm Die unterschiedliche Handhabe: Fehler zu (1): Es wird eine Exception mit croak() geworfen, der Programmierer bekommt einen Backtrace und sieht, an welcher Stelle er im Code die API nicht richtig anwendet Fehler zu (2): Es wird eine Exception geworfen mit die(), der Backtrace wird unterdrückt und die Meldung kann bis zum Endbenutzer durchgereicht werden. Es liegt an Deinem Gesamtkonzept, inwieweit Du mit dem Exception-Model umgehen kannst, d.h., der Meldetexte einer Exception kann auch über eine entsprechende Methode bis zum Endbenutzer durchgereicht werden. Auf diese Art und Weise lässt sich einiges an Code vereinfachen. Nun zu Deiner Methode, möglich wäre: Code (perl): (dl
)
$object->machwas(5); 1) Dein Programm stellt sicher, dass nur einstellige Zahlen reinkommen 2) machwas(99) wirft eine Exception, wenn die Zahl nicht zwischen 0..9 liegt Z.B. in einer Webanwendung: Code (perl): (dl
)
1 2 $object->machwas(5) or return $gui->Fehlerseite( title => 'Eingabefehler', descr => 'Die Zahl muss zwischen 0..9 liegen' ); Und: Sei froh, dass Du in Perl (noch) keinen typecast machen musst, so wie in JavaScript ( http://rolfrost.de/scaligerclass.html ) |