Thread "Exception handling" Frage (10 answers)
Opened by Kuerbis at 2012-06-17 08:41

rosti
 2012-06-17 10:37
#159074 #159074
User since
2011-03-19
3478 Artikel
BenutzerIn
[Homepage]
user image
2012-06-17T06:41:52 Kuerbis
Hallo,

ist es bei einer solchen Funktion, in der in einem zweiten, optionalen Argument Optionen als Hash-Referenz übergeben werden, zu brutal, wenn bei ungültigen Optionen bzw. ungültigen Optionswerten ein croak aufgerufen wird?
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use Carp;

sub function {
    my ( $arrayref, $hashref ) = @_;
    croak if not defined $arrayref;
    croak if $arrayref ist keine Array-Referenz
    
    if ( defined $hashref ) {
        croak if $hashref ist keine Hash-Referenz
        # test keys und values
        croak if ungültige keys oder values;
    }
    ...
    ...
    
    return Auswahl aus $arrayref;
}


Das ist OK, wenn beim _Ausführen_ der Funktion auf Exception geprüft wird:

Code (perl): (dl )
1
2
3
4
5
6
7
my $returnValue = eval{ function(@argumente) };
# frage $@ ab, ob es eine Exception gab
# croak liefert eine Exception ... at zeigt auf die Zeile, in
# welcher die Funktion aufgerufen wird.


# Btw., croak "sollte auch aussagen, was nicht stimmt";

Last edited: 2012-06-17 10:39:51 +0200 (CEST)

View full thread "Exception handling" Frage