try:
something here
except:
print 'the whatever error occurred.'
Jak mogę wydrukować błąd w moim bloku except:
?Jak wydrukować błąd w Pythonie?
try:
something here
except:
print 'the whatever error occurred.'
Jak mogę wydrukować błąd w moim bloku except:
?Jak wydrukować błąd w Pythonie?
dla Pythona 2.6 i nowszych:
except Exception as e: print(e)
dla Pythona 2.5 i wcześniejszych, stosowanie :
except Exception,e: print str(e)
Wygląda jak najbliżej tego, co chciał OP. – physicsmichael
Część 'str()' jest zbędna - 'print e' jest dokładnie tym samym, co' print str (e) '[[tj.' Print' ma własną strufikację]]. –
@alex: czy to nie zależy od podklasy (jeśli jest) wyjątku zgłoszonego? Metoda __repr__ mogła nie zostać zaimplementowana, dopóki może mieć __str__. W każdym razie nie ma dobrego zamiennika dla niekompletnej implementacji ;-) – jldupont
W przypadku, gdy chcesz przekazać ciągi błędach, tutaj jest przykład z Errors and Exceptions (Python 2,6)
>>> try:
... raise Exception('spam', 'eggs')
... except Exception as inst:
... print type(inst) # the exception instance
... print inst.args # arguments stored in .args
... print inst # __str__ allows args to printed directly
... x, y = inst # __getitem__ allows args to be unpacked directly
... print 'x =', x
... print 'y =', y
...
<type 'exceptions.Exception'>
('spam', 'eggs')
('spam', 'eggs')
x = spam
y = eggs
Bardzo kompletny, chociaż "jak" nie działa przed pythonem 2.6 – foosion
traceback
zapewnia metody formatowania i drukowania wyjątki i ich informacje zwrotne, np. Wyjątek ten będzie drukować jak domyślnej obsługi robi:
except: traceback.print_exc()
To powinno być właściwą odpowiedzią –
Zgadzam się z @KarthikT, że to rzeczywiście powinna być poprawna odpowiedź. –
One liner podnoszenie błąd można zrobić z wypowiedzi dochodzić, czy to, co chcesz robić. Pomoże Ci to napisać statycznie naprawialny kod i wcześnie sprawdzić błędy.
assert type(A) is type(""), "requires a string"
W Python 2.6 lub większym to nieco czystsze:
except Exception as e: print(e)
W starszych wersjach to wciąż dość czytelna:
except Exception, e: print e
W python3, należy użyć 1-szej ścieżki z "as". –
Proponuję zmianę tytułu: nie jesteś druk __error__, drukujesz __exception__. Oni są różni. – FaithReaper