Wie man so schön sagt, kann es beim Schreiben von Programmen nicht immer zu unvorhergesehenen Situationen kommen. Wenn wir zum Beispiel rausgehen, um einen Film anzusehen, gehen wir erst raus und gehen dann Nachdem wir einen Film gesehen hatten, gingen wir einkaufen und gingen nach Hause. Nachdem wir den Film gesehen hatten, mussten wir jedoch feststellen, dass es draußen regnete Der Regen hier ist eine ungewöhnliche Situation, daher haben wir das Programm entwickelt. Es ist Zeit, diese Ausnahmebehandlungslösung hinzuzufügen.
Schauen wir uns zunächst ein Ausnahmeproblem an. Der Code lautet wie folgt:
number=int(input('Bitte geben Sie eine Zahl ein:'))if15/number>=3:print('ok')else:print('wrong')
Ausgabeergebnis:
Bitte geben Sie eine Zahl ein: 3ok Bitte geben Sie eine Zahl ein: 15falsch Bitte geben Sie eine Zahl ein: 0Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>if15/number>=3:ZeroDivisionError:divisionbyzero
Wenn der Nenner, den wir eingeben, 0 ist, wird das Programm einen Fehler melden, was bedeutet, dass ein Problem mit dem von uns geschriebenen Programm vorliegt. Da wir nicht darüber nachgedacht haben, was zu tun ist, wenn der Nenner 0 ist, ist im Programm eine Ausnahme aufgetreten Deshalb haben wir das Programm geschrieben. Sie müssen einige ungewöhnliche Situationen berücksichtigen, die auftreten können. Lassen Sie uns etwas über einige häufige abnormale Situationen lernen.
Dies ist eine Ausnahme, die auftritt, wenn auf einen Wörterbuchschlüssel zugegriffen wird und der Schlüsselwert nicht vorhanden ist.
Der Code lautet wie folgt:
my_dict={'dotcpp':123}print(my_dict['dot'])
Die Ausnahme ist wie folgt:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_dict['dot'])KeyError:'dot'
Diese Art von Ausnahme tritt häufiger auf, wenn wir auf Sequenzelemente zugreifen. Wenn der Indexwert den Bereich überschreitet, lautet der Code wie folgt:
my_list=[1,2,3,4,5]print(my_list[100])
Die Ausnahme ist wie folgt:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>print(my_list[100])IndexError:listindexoutofrange
Unsere Liste enthält nur 5 Elemente und diese Ausnahme wird ausgelöst, wenn der Zugriff das Limit überschreitet.
Diese Ausnahme wird ausgelöst, wenn wir eine undefinierte Variable verwenden. Der Code lautet wie folgt:
name=['www.dotcpp,com']print('Vorhandener Variablenname:',name)print('Nicht vorhandene Variable dotcpp:',dotcpp)
Die Ausnahme ist wie folgt:
Vorhandener Variablenname:['www.dotcpp,com']Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled1/teach/test.py,line3,in<module>print('Nicht vorhandene Variable dotcpp: ',dotcpp)NameFehler:Name'dotcpp'ist nicht definiert
Diese Ausnahme tritt auf, wenn die übergebenen Daten nicht mit dem angegebenen Typ übereinstimmen. Wenn wir beispielsweise zwei Ganzzahlen addieren und subtrahieren möchten und eine davon einen Zeichenfolgentyp verwendet, tritt dieser Fehler auf.
Der Code lautet wie folgt:
a=10b='dotcpp'print(a+b)
Die Ausnahme ist wie folgt:
Traceback(mostrecentcalllast):FileC:/Users/test.py,line3,in<module>print(a+b)TypeError:unsupportedoperandtype(s)for+:'int'and'str'
Die oben genannten sind einige der häufigsten Ausnahmen. Während des Lernprozesses können wir auf ValueError, OSError und andere Ausnahmen stoßen. Wenn wir auf eine Ausnahme stoßen, die wir nicht erkennen, können wir den relevanten Inhalt über das Hilfedokument abfragen.