Sie finden diese separatentry
Blöcke machen müssen:
try:
code a
except ExplicitException:
pass
try:
code b
except ExplicitException:
try:
code c
except ExplicitException:
try:
code d
except ExplicitException:
pass
Dies setzt voraus, Sie nur wenn code b
nicht ausgeführt code c
wollen.
Wenn Sie code c
unabhängig ausführen können, müssen Sie die try
Blöcke nacheinander setzen:
try:
code a
except ExplicitException:
pass
try:
code b
except ExplicitException:
pass
try:
code c
except ExplicitException:
pass
try:
code d
except ExplicitException:
pass
ich except ExplicitException
hier bin mit, weil es nie blind eine gute Praxis ist, Ignoriere alle Ausnahmen. Sie ignorieren MemoryError
, KeyboardInterrupt
und SystemExit
auch sonst, die Sie normalerweise nicht ignorieren oder abfangen möchten, ohne irgendeine Art von Re-Raise oder bewussten Grund für die Handhabung dieser.
Um explizit, Sie 'Code c ' ausgeführt werden * nur wenn Code b eine Ausnahme auslöst *? –
Alle Codes sollten in einem try-Block ausgeführt werden, auch wenn sie eine Ausnahme auslösen. – arvidurs
Das kann man nicht haben. Ein "try" -Block ist nicht dazu da, Ausnahmen über den gesamten ausgeführten Code hinweg zu unterdrücken. Es wird Ihnen erlauben, die Ausnahme zu fangen, wenn es passiert, aber der Rest des Blocks wird niemals ausgeführt. –