Python #27 - Exceptions

  Рет қаралды 29,926

The Morpheus Tutorials

The Morpheus Tutorials

Күн бұрын

In diesem Video zeige ich euch alles zu Exceptions und Exceptionhandling.
Playlist: • Python Tutorials Deutsch
* Meine Website mit allen anderen Kanälen und Newsletter *:
the-morpheus.de/
Discord:
the-morpheus.d...
Unterstützt mich - Danke!:
www.patreon.co...
www.paypal.me/...

Пікірлер: 75
@mintendolp5313
@mintendolp5313 7 жыл бұрын
Ich weiß diese Videos sind schon recht alt ... aber trotzdem Ultra geil. .. Danke dafür und weiter so :)
@TheMorpheusTutorials
@TheMorpheusTutorials 7 жыл бұрын
Das schöne an Tutorials: Die altern ganz anders. Wenn man bedenkt, dass Python 3 immer noch das neueste ist und oftmals sogar noch Python 2 genutzt wird:) Freut mich wenns dir gefallen hat
@denizstyx
@denizstyx 2 жыл бұрын
ALT?! 4 Jahre später und ich finde diese Reihe genial und ausführlich, auch wenn ich manchmal nicht alles verstehe. Z.bsp habe ich die Tic Tac Toe Übung geskippt weil mir aufgefallen ist , dass ich hierfür noch nicht bereit bin.
@1marius16
@1marius16 3 жыл бұрын
Ich hab nicht ganz verstanden, warum man am Anfang ne Klasse macht, die von Exception erbt. Kann mir das nochmal jemand erklären?
@Leonardo-eu7jt
@Leonardo-eu7jt 3 жыл бұрын
Damit du Methoden in der Klasse definieren kannst.
@heiligepommesbude9555
@heiligepommesbude9555 3 жыл бұрын
Das war einfacher als Vererbung :-) except shitstorm: pass
@easypy
@easypy 2 жыл бұрын
Exceptions sind empfehlenswert wenn der Fehler den Programmablauf nicht beeinflussen sollten . Ansonsten situationsbedingt:)
@sandorhegedues4924
@sandorhegedues4924 3 жыл бұрын
Erstmal danke für die coole(kostenlose) Reihe. Wofür ist die classe exception oben?
@funnykira1330
@funnykira1330 8 жыл бұрын
Weißt du obs da eine Liste gibt, in welcher die Python Exeptions auf deutsch erklärt werden?
@TheMorpheusTutorials
@TheMorpheusTutorials 8 жыл бұрын
+AniYou ich rate mal nein, die meisten Dokus sind auf Englisch..
@redcraft7657
@redcraft7657 3 жыл бұрын
Ich checke eigentlich alles bis auf das mit diesen Exeptions Klassen. Für was braucht man die?
@totento9150
@totento9150 4 жыл бұрын
gibt es ne art Liste für Fehlermeldungen ? oder muss man sich das merken?
@jemand1685
@jemand1685 5 жыл бұрын
Was ist ein raise und was ist ein RunTimeError und was ist jetzt in der Klasse Exeption? Also du hättest noch erklären können warum wir jetzt Exeption vererben (was in der Exception drin steht) und was die Errors sind aber ansonsten danke!
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Raise wirft einen Fehler. RunTimeErrors auf Fehler die zur Laufzeit auftreten (Sorry 4 obvious) und durch die Vererbung erstellst du dir eine eigene Fehler klasse, die du werfen kannst
@jemand1685
@jemand1685 5 жыл бұрын
Ahh danke mach weiter so
@marcojahn2564
@marcojahn2564 Жыл бұрын
Wenn ich das richtig sehe, scheint der Try-Block aber immer nur einen Befehl abzuarbeiten,oder ? Sprich: wenn ich da die foo-Funktion 2x nacheinander reinschreibe, wird der 2.Durchlauf gar nicht erst gestartet, wenn der 1.Durchlauf schon eine Exception geworfen hat.
@Erbond12
@Erbond12 5 жыл бұрын
Deine Videos sind echt nice zum lernen, aber ich hänge gerade ein wenig mit dem verständnis der Exception Klasse. Ich verstehe nämlich nicht ganz warum man jetzt die Oberklasse Exception in die klasse Ex weiter vererben muss. Das pass ist ja nur dafür da, dass man einfach wenn nichts in der Klasse ist die Attribute der Oberklasse übernimmt, aber was wirklich von Exception übernommen wird verstehe ich noch nicht ganz. Ist das eine Ansammlung an Fehlern? Aber müsste dann nicht der "got to catch them all" Fehler auftretten (also except Exception: ...)?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Du kannst quasi eigene Fehler erstellen,die du werfen kannst wann du willst. Zb stell dir bei einem game wie minecraft vor du hast einen objectbroken Fehler, der geworfen wird, wenn das Werkzeug kaputt ist und einen blockgone Fehler, wenn der Block schon abgebaut wurde. Je nachdem welcher Fehler auftritt, kann die fangende Funktion anders - besser - reagieren. Du möchtest ja nicht, dass das ganze abschmiert. Das kannst du mit 2 verschiedenen except Blöcken machen
@Erbond12
@Erbond12 5 жыл бұрын
@@TheMorpheusTutorials Danke dir auch hier nochmal für deine Antwort. Aber ich habe noch nicht ganz verstanden, wie man die das genau nutzen kann. Wir haben im video eine Klasse erstellt, die als Fehlerklasse interpretiert werden kann, aber das bringt mir ja nichts, wenn die Klasse lehr ist, oder übersehe ich da was? könntest du noch mal erklären, was genau die Klasse Exception und die beiden Funktionen pass und raise tun/ sind?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Doch, allein der Name bringt dir was in diesem Fall 🙂 Sagen wir, in deinem Code geht es schief und du wirst eine exception a. In der selben Funktion kann aber auch exception b geworfen werden, wenn was anderes schief geht. Die aufrufende Funktion kann jetzt 2 verschiedene Fälle auffangen und unterschiedlich behandeln, je nach dem welche exception fliegt
@transzendenz1774
@transzendenz1774 6 жыл бұрын
Einfach am Anfang des Programms immer try: und am Ende Except Exception: und man hat sein ganzes Leben lang nie wieder Fehlermeldungen, und damit muss man dann krass angeben :D
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
ja, ist aber auch nicht unbedingt sinnvoll. Das Programm funktioniert ja trotzdem nicht :D
@transzendenz1774
@transzendenz1774 6 жыл бұрын
The Morpheus Tutorials Es geht nur ums Angeben beim Programmieren :D
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
:D
@ralphfest.pusteblume9530
@ralphfest.pusteblume9530 5 жыл бұрын
Worin besteht der Unterschied ob "except Exception:" oder nur "except:" mit jeweils folgenden Befehlen innerhalb der Exception verwende? Beides füht mir die z.B. print Befehle innerhalb der Excepton aus. Als Bsp: except: print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0]) als auch except Exception: print ("Folgender Fehler ist aufgetreten:", sys.exc_info()[0]) liefert dieselbe Ausgabe mit nicht gecatchter Exceptionart. danke Dir!
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Exception ist das allgemeinste. Du kannst noch spezifischer werden, welche exception du fangen möchtest. Wenn du nur allgemein alles fangen willst, reicht except
@playhardtotame1122
@playhardtotame1122 5 жыл бұрын
Habe eine Frage und zwar ich kann mein oserror nicht mit expaction "retten" der Fehler wird trotzdem angezeigt, geht das nicht mit is errors oder ist was anderes los?
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Doch, das geht mit allen errors, aber es heißt except , nicht expaction
@DirkJes77
@DirkJes77 8 жыл бұрын
Gibt es eine Möglichkeit, die Zeilennummer des Fehlers abzugreifen/auszugeben?
@TheMorpheusTutorials
@TheMorpheusTutorials 8 жыл бұрын
import sys, os try: raise NotImplementedError("No Probs") except Exception as e: exc_type, exc_obj, exc_tb = sys.exc_info() fname = os.path.split(exc_tb.tb_frame.f_code.co_filename)[1] print(exc_type, fname, exc_tb.tb_lineno)liefern dir zusätzliche Infos, unter anderem auch die LineNumber =)
@DirkJes77
@DirkJes77 8 жыл бұрын
+The Morpheus Tutorials Danke für die flinke Antwort. 👍
@warumdenn5179
@warumdenn5179 6 жыл бұрын
braucht man des oft? (bitte sag nein xD )
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
nein :D
@marcojahn2564
@marcojahn2564 Жыл бұрын
Selbst zusammengeschusterte Exceptions ? Eher nicht. Dass man die "werksmäßig mitgelieferten" Exceptions abfangen muss, kommt da schon eher vor. Im Optimalfall sollte man seinen Code aber schon so schreiben, dass es gar nicht erst zu Fehlern kommen kann. Etwa indem man gleich bei der Eingabe von Werten durch den User eine Plausibilitätsprüfung mit einbaut, ob bei der erwarteten Eingabe einer Ziffer tatsächlich eine Ziffer eingegeben wurde.
@billyhilly8129
@billyhilly8129 7 жыл бұрын
Hi wieder mal ;D Deine eigene Klasse Ex erbt Exception. Müsste diese nicht jetzt alle Exceptions abfangen können? Dein letzter except-Aufruf (Minute 7:51) ist doch auch die Oberklasse Exception und fängt alles auf was noch durchsickert. Warum passiert das nicht schon im ersten except-Aufruf wo du deine Ex() fängst? thx
@TheMorpheusTutorials
@TheMorpheusTutorials 7 жыл бұрын
catch Ex fängt wirklich nur alle Instanzen von GENAU der Klasse Ex. Also alles was drüber ist (Exception) oder alle anderen Exceptions werden ignoriert, außer die Unterklassen von Ex. Von denen gibt's hier aber tatsächlich gar keine.
@jerry7913
@jerry7913 3 жыл бұрын
also irgend wie hast du deine TicTacToe Übung zu früh gemacht ;)
@1marius16
@1marius16 3 жыл бұрын
Hä ich hab die gar nicht gebraucht... Höchstens für ValueError und das hat er glaub vorher schon erklärt. Oder was meinst du?
@Kig_Ama
@Kig_Ama 4 жыл бұрын
Was ist dieses raise nochmal, das habe ich nicht kapiert.
@marcojahn2564
@marcojahn2564 Жыл бұрын
Das ist quasi der Befehl, damit Python ganz absichtlich eine Exception wirft.
@maxbart1353
@maxbart1353 4 жыл бұрын
wie gut müsste man sein um einen Job als Programmierer zu finden? und was wäre ein möglicher Weg so ganz ohne Abschluss? ich denke eine Anstellung ist so schwierig (außer man ist sehr gut, was ich nicht bin).es Irgendwie als Freelancer versuchen?
@TheMorpheusTutorials
@TheMorpheusTutorials 4 жыл бұрын
Hmm, ohne Ausbildung oder Studium brauchst du halt eigene Referenzen um zu zeigen, was du kannst. Dann geht das schon
@TheMorpheusTutorials
@TheMorpheusTutorials 4 жыл бұрын
Wenn du magst, schreib mir mal auf discord oder Email, vielleicht können wir da was machen
@maxbart1353
@maxbart1353 4 жыл бұрын
das ist noch ein langer weg, also mal sehen. und danke
@darren32thereal
@darren32thereal 6 жыл бұрын
kann man sich damit seine eigenen Error Definitionen schreiben damit es noobfreundlicher wird ?
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
Klar, du kannst mit throw eigene Exceptions werfen, das sind alle die, die von Exception erben
@Sk8AndDestr0y
@Sk8AndDestr0y 6 жыл бұрын
RuntimeError wird nicht erkannt wenn man ecxept Exceptions: verwendet... weiß jemand warum?
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
except.. nicht ecxept
@Sk8AndDestr0y
@Sk8AndDestr0y 6 жыл бұрын
richtig, aber daran liegts nicht war nur ein tippfehler.. er nimmt einfach lieber die Nachricht von Exceptions als die von RuntimeError
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
achso, jetzt hab ichs gefunden :D Und zwar musst du entweder except: schreiben oder aber except FEHLERKLASSE: wobei Fehlerklasse wirklich die Klasse des Fehlers sein muss, also zB ValueError oder so. Die Klasse "Exceptions" gibts nicht
@PProgress
@PProgress 4 жыл бұрын
Was bedeutet dieses "raise"?
@LB-qr7nv
@LB-qr7nv 3 жыл бұрын
Das erzeugt einfach einen Fehler, der das Programm zum Absturz bringt und einen Fehler deiner Wahl ausgibt
@janz.7994
@janz.7994 8 жыл бұрын
except ist also bischen wie catch in c# ?
@TheMorpheusTutorials
@TheMorpheusTutorials 8 жыл бұрын
ziemlich genau das :)
@janz.7994
@janz.7994 8 жыл бұрын
oke danke
@Juliana-mo7ef
@Juliana-mo7ef 6 жыл бұрын
Das Totourial ist zwar schon sehr alt aber : ich versteh dieses Video irgendwie nicht D:
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
Wenn du mir ne genauere Frage stellst, kann ich dir sicher helfen :D Das Alter macht rein gar nix, funktioniert immer noch alles genau gleich ;)
@Juliana-mo7ef
@Juliana-mo7ef 6 жыл бұрын
Danke für die schnelle Antwort, ich schreib einfach mal das was ich verstehe den Rest nicht;Ich verstehe: try und except(aber nicht was danach steht) mir fällt gerade auf das dass iegendwie alles ist D: und : Natürlich verstehe ich die Klasse
@Juliana-mo7ef
@Juliana-mo7ef 6 жыл бұрын
Und danke für die Totourials die sind echt gut 👍
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
Okay, also im Code können Fehler passieren. Beispielsweise versuchst du auf ner Zahl zahl den Befehl zahl[0] aufzurufen. Das wirft nen Fehler. Das kannst du auch von Hand machen mit raise Exception(), was sinnvoll ist, wenn du ne Klasse schreibst, die jemand anders nutzt und du möchtest ihm zeigen, dass da was schief gehen kann. Von Exception kannst du auch erben, damit die Fehlermeldungen vielleicht etwas aussagekräftiger werden, daher class Ex(Exception). Du kannst mit einem try: Block Code ausführen und wenn da ne Exception kommt, stürzt dann nicht gleich dein ganzes Programm ab, sondern du landest nur im except Block. hier musst du erstmal angeben, welche Fehlermeldungen du überhaupt erwarten willst. Das machst du mit except Ex(): damit sagst du "ich erwarte nen Ex-Fehler. Wenn der kommt wird der Code unter except ausgeführt. Und ich glaube das wars auch schon^^
@Juliana-mo7ef
@Juliana-mo7ef 6 жыл бұрын
The Morpheus Tutorials Vielen Dank das du dir so eine Mühe für deine Zuschauer gibst😀Endlich versteh ich es!Danke :D Entschuldigung mir fällt gerade auf das es Tutorial heisst xD
@mundron5290
@mundron5290 5 жыл бұрын
Sehr gutes Video, aber irgendwie hab ich nicht begriffen was das pass macht.
@TheMorpheusTutorials
@TheMorpheusTutorials 5 жыл бұрын
Es macht einfach gar nichts :D Man muss in Python eine Zeile Code nach einem Doppelpunkt haben, aber wenn man keine möchte, nimmt man pass
@mundron5290
@mundron5290 5 жыл бұрын
Ach so! Also steht pass fuer eine leere Klasse/Methode. Richtig? Dann kann deine Klasse Ex durch die Vererbung genau das selbe wie Exception und kann somit als Kopie mit anderem Namen betrachtet werden. Ok. Danke!
@ubiquitousjoke5526
@ubiquitousjoke5526 6 жыл бұрын
was ist mit finally?
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
Hab ich untern Tisch geschlagen, gibt es aber
@ubiquitousjoke5526
@ubiquitousjoke5526 6 жыл бұрын
Eine Antwort schneller als die polizei erlaubt, aber ok, halte finally eh irgendwie für unnötig
@TheMorpheusTutorials
@TheMorpheusTutorials 6 жыл бұрын
9 Stunden ist doch nicht schnell :D Das hier ist schnell^^
@ubiquitousjoke5526
@ubiquitousjoke5526 6 жыл бұрын
xD und noch dazu zu so nem alten video, good job
Python Exercise - A Text Adventure
51:42
The Morpheus Tutorials
Рет қаралды 38 М.
Python #28 - Multithreading
11:06
The Morpheus Tutorials
Рет қаралды 58 М.
Magic or …? 😱 reveal video on profile 🫢
00:14
Andrey Grechka
Рет қаралды 87 МЛН
Пришёл к другу на ночёвку 😂
01:00
Cadrol&Fatich
Рет қаралды 10 МЛН
The Joker wanted to stand at the front, but unexpectedly was beaten up by Officer Rabbit
00:12
The CUTEST flower girl on YouTube (2019-2024)
00:10
Hungry FAM
Рет қаралды 51 МЛН
Python #35 - Vokabeltrainer
19:51
The Morpheus Tutorials
Рет қаралды 26 М.
KI Singen lassen mit EIGENER Stimme | Kits AI Tutorial deutsch
13:51
Helped by a Nerd
Рет қаралды 10 М.
No, Einstein Didn’t Solve the Biggest Problem in Physics
8:04
Sabine Hossenfelder
Рет қаралды 276 М.
Warum IT-Security so schlecht läuft
16:24
The Morpheus Tutorials
Рет қаралды 28 М.
Python #29 - Multithreading Locks
9:50
The Morpheus Tutorials
Рет қаралды 30 М.
Chrome kann machen was sie wollen: Die Browser Monokultur
25:54
The Morpheus Tutorials
Рет қаралды 32 М.
Python Tutorial #43 - Generatoren und Yield
14:46
The Morpheus Tutorials
Рет қаралды 18 М.
Magic or …? 😱 reveal video on profile 🫢
00:14
Andrey Grechka
Рет қаралды 87 МЛН