2016-09-01 2 views
0

Ich benutze die wikipedia Bibliothek und ich möchte die DisambiguationError als Ausnahme behandeln. Mein erster Versuch warHandling DisambiguierungError?

try: 
    wikipedia.page('equipment') # could be any ambiguous term 
except DisambiguationError: 
    pass 

Während der Ausführung Zeile 3 wird nicht erreicht. Eine allgemeinere Frage lautet: Wie kann ich den Fehlertyp für eine Bibliothek-spezifische Klasse wie diese finden?

Antwort

3

Hier ist ein funktionierendes Beispiel:

import wikipedia 

try: 
    wikipedia.page('equipment') 
except wikipedia.exceptions.DisambiguationError as e: 
    print("Error: {0}".format(e)) 

In Bezug auf Ihre allgemeinere Frage how can I find the error type for a library-specific class like this?, mein Trick ist eigentlich ganz einfach, neige ich dazu Ausnahme zu erfassen und dann das Drucken nur die __class__, auf diese Weise werde ich wissen, was spezifische Ausnahme, die ich erfassen muss.

Ein Beispiel herauszufinden, welche spezifische Ausnahme hier zu erfassen:

try: 
    0/0 
except Exception as e: 
    print("Exception.__class__: {0}".format(e.__class__)) 

Dies würde Exception.__class__: <type 'exceptions.ZeroDivisionError'> drucken, so dass ich wusste würde die genaue Ausnahme sein mit, anstatt etwas zu tun allgemeineren

+0

@ Jason Yeah, du hast Recht, ich habe meinen Code bearbeitet, um für andere Leute klarer zu werden ;-) – BPL

+0

Ha, ich habe gerade gemerkt, dass ich nicht sorgfältig genug gelesen habe und dein Code in erster Linie ziemlich klar war. Ich schätze extra Klarheit kann aber nicht schaden! – Jason