Naja, in dem Beispiel wird gezeigt wie bei einer Exception eine entsprechende Methode "handle_exception" ausgeführt wird. Das wird bei mir leider nicht benötigt, ich muss für den Test wissen, ob es in einer aufgerufenen Methode eine Exception gegeben hat.
Also hier ist die grobe Struktur:
Code: Alles auswählen
def daten_abruf_1():
try:
# abholen der Daten von externer Quelle
# None wenn keine Daten
return data
except:
print "error message"
return False
def datenquellen_test():
print ("Erreichbarkeits-Test der Datenquellen bei Programm-Initialisierung")
daten_erreichbar = True
if daten_abruf_1() == False:
print ("Fehler beim Abrufen von Daten 1")
daten_erreichbar = False
if daten_abruf_2() == False:
print ("Fehler beim Abrufen von Daten 2")
daten_erreichbar = False
if daten_erreichbar:
print ("Einsatzbereit, Datenquellen sind erreichbar")
return daten_erreichbar
def daten_verarbeiten():
daten_1 = daten_abruf_1()
if daten_1:
# ...
return daten_bearbeitet
return None
Vielleicht könnt ihr mir an dem Beispiel zeigen, wie lassen sich dann die Exceptions besser nutzen, damit so eine Methode "datenquellen_test" funktioniert (ohne return False)?
Wenn während der Laufzeit die Daten nicht erreichbar sind, gibt es nichts zu handeln außer eine entsprechende Meldung im Log, es kann eine kurzfristige nicht Erreichbarkeit sein. Aber beim Starten sollten die Daten natürlich erreichbar sein, sonst kann vielleicht ein Konfigurationsfehler vorliegen. Die Fehlermeldung der Exeption aus "daten_abruf_1" ist dann ebenfalls ein Hinweis auf das Problem.