Servus,
ich habe ein kleines Problem mit dem vollständigen Verständnis von Fehlergruppen in Python. Kann jemand meine kleine Erklärung der Fehlertypen erweitern bzw. verbessern.
Lexikalischer Fehler: Rechtschreibfehler wie z.B pirnt("Hello World")
Syntaktischer Fehler: Grammatikfehler z.B else ... if
statisch Semantischer Fehler Inhaltsfehler in der Grammatik des Programms und wird von der Shell vor dem Laufen erkannt z.B wenn die Variable x nicht definiert ist.
dynamisch Semantischer Fehler: hier hab ich ein Problem, kann mir das jemand kurz erklären? Ist es das identische wie statisch, nur wenn es aber läuft?
Syntax, statische und dynamische Semantikfehler
Ich verstehe nicht was du mit "statisch Semantischer Fehler Inhaltsfehler" meinst. Python ist eine weitgehend dynamische Sprache, so dass viele Fehlergruppen, die in anderen Sprachen zur Compilezeit erkannt werden, erst zur Laufzeit erkannt werden. Es gibt eigentlich nur Syntaxfehler, die der Compiler erkennt. Falsch geschriebene Namen führen zu einem NameError, AttributeError, UnboundLocalError, ganz anderen Fehlern oder gar keiner Fehlermeldung, sondern nur falschem Verhalten.
Ein Programm kam halt auf sehr vielfältige Weise falsch sein.
Ein Programm kam halt auf sehr vielfältige Weise falsch sein.
- noisefloor
- User
- Beiträge: 3858
- Registriert: Mittwoch 17. Oktober 2007, 21:40
- Wohnort: WW
- Kontaktdaten:
Hallo,
ich verstehe die Frage nicht wirklich, also den Sinn der Frage... Es gibt einen ganzen Schwung Exceptions (=Fehler), die bei der Ausführung des Skripts auftreten können. Entweder, wenn der Python-Bytecode erzeugt wird oder wenn der abgearbeitet wird. Außerdem kann man im Code eigene Exceptions definieren.
Die Ausgabe, die bei einer Exceptions erscheint, sollte so aussagekräftig sein, dass man den Fehler erkennt und beseitigen kann.
Warum willst du die Fehler gruppieren?
Gruß, noisefloor
ich verstehe die Frage nicht wirklich, also den Sinn der Frage... Es gibt einen ganzen Schwung Exceptions (=Fehler), die bei der Ausführung des Skripts auftreten können. Entweder, wenn der Python-Bytecode erzeugt wird oder wenn der abgearbeitet wird. Außerdem kann man im Code eigene Exceptions definieren.
Die Ausgabe, die bei einer Exceptions erscheint, sollte so aussagekräftig sein, dass man den Fehler erkennt und beseitigen kann.
Warum willst du die Fehler gruppieren?
Gruß, noisefloor
- __blackjack__
- User
- Beiträge: 13123
- Registriert: Samstag 2. Juni 2018, 10:21
- Wohnort: 127.0.0.1
- Kontaktdaten:
@PyPaiX: Deine Beschreibung zu „statisch Semantischer Fehler“ ist falsch weil das a) kein grammatikalischer Fehler ist, der wäre nicht am Compiler vorbeigekommen, und b) falsche Namen nicht statisch vom Compiler erkannt werden, sondern erst zur Laufzeit zu einer Ausnahme führen.
Und auch Dein Beispiel für lexikalische Fehler ist falsch, denn `pirnt` ist einfach nur ein falsch geschriebener Name der zur Laufzeit zu einer Ausnahme führt. Also sofern es diesen Namen dann tatsächlich nicht gibt. Kann ja auch sein, das der Name tatsächlich definiert wird bevor er verwendet wird. Ein Grund mehr warum der Compiler so etwas gar nicht erkennen *kann*.
@noisefloor: So etwas ”will” man in der Regel wenn es auf dem Hausaufgabenzettel steht.
Und auch Dein Beispiel für lexikalische Fehler ist falsch, denn `pirnt` ist einfach nur ein falsch geschriebener Name der zur Laufzeit zu einer Ausnahme führt. Also sofern es diesen Namen dann tatsächlich nicht gibt. Kann ja auch sein, das der Name tatsächlich definiert wird bevor er verwendet wird. Ein Grund mehr warum der Compiler so etwas gar nicht erkennen *kann*.
@noisefloor: So etwas ”will” man in der Regel wenn es auf dem Hausaufgabenzettel steht.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Das ist nach meiner Kenntnis eine Nomenklatur, die eher im akademischen Bereich bzw. zu Lehrzwecken verbreitet ist; die Quellen dazu sind vor allem irgendwelche Vorlesungsfolien/-skripte und häufig mit Java-Bezug. Siehe für eine Variante z.B.: https://www.inf.unibz.it/~calvanese/tea ... node2.html