frankx: Rückgabewerte und Fehlerbehandlung allgemein bzw. am Beispiel

Beitrag lesen

Hellihello,

mal angenommen, ich bau mir eine Klasse, die (eine) CSV-Dateie(n) einlesen soll und dann als mehrdimensionales Array (List of Hash) zurück gibt.

$my_csv_reader = new My_CSV_Reader("file_name.csv")
$table_as_list_of_hash = $my_csv_reader->get_table_as_list_of_hash();

Jetzt unterscheide ich mal drei Fälle:

1. Der Dateipfad existiert nicht. Was gibt dann die Funktion zurück? Am besten ein leeres Array? Sollte sie immer ein Array zurückgeben? In PHP-Documentor wird für jede Funktion ja zB. ein @return angegeben, also der Variablentyp, den die Funktion zurückgibt. Wie unterscheide ich aber dann das von

2. Dateipfad existiert, dass File ist aber leer bzw. enthält nur leere Einträge?

Dass die Funktion ->get_table_as_list_of_hash() in Fall 1. oder 2. dann selbst anfängt zu sprechen wie mit
echo "file nicht vorhanden" oder echo "file leer" scheint mir nicht besonderes glücklich. Die Ausgabengestaltung ist ja nicht ihre Aufgabe. Genauso lese ich ja auch immer wieder dass die("file nicht vorhanden") keine adäquate Fehlerbehandlung sei, das leuchtet ja auch ein.

Man könnte natürlich auf die Fallunterscheidung 1./2. verzichten und weiß immerhin: entweder ist die Tabelle leer oder sie existiert nicht. Oder man baut weitere Funktionen ein wie

->exists_file()
->is_empty()

die dann abgefragt werden könnten von "Controller", wenn das Rückgabe-Array leer wäre?

Dank für etwaige Tipps im Voraus und Gruß,

frankx

--
tryin to multitain  - Globus = Planet != Welt