Teraz przechwytuję wyjątek w klauzuli except Exception:
i robię print(exception)
. Wynik nie zawiera informacji, ponieważ zawsze drukuje <class 'Exception'>
. Wiedziałem, że to działa w Pythonie 2, ale jak mam to zrobić w python3?Jak wydrukować wyjątek w Pythonie 3?
Odpowiedz
Zgaduję, że trzeba przypisać Exception
do zmiennej. Jak shown in the Python 3 tutorial:
def fails():
x = 1/0
try:
fails()
except Exception as ex:
print(ex)
Aby dać krótkie wyjaśnienie, as
jest kluczowe pseudo-przypisanie stosowane w niektórych sprawozdaniach złożonych do cesji lub alias poprzedni oświadczenie do zmiennej.
W tym przypadku as
przypisuje złapany wyjątek do zmiennej, która pozwala uzyskać informacje o wyjątku przechowywanym i używanym później, zamiast konieczności natychmiastowego rozpatrzenia. (Jest to omówione szczegółowo w Python 3 Language Reference: The try
Statement.)
Inne stwierdzenie związku używając as
jest stwierdzenie with
:
@contextmanager
def opening(filename):
f = open(filename)
try:
yield f
finally:
f.close()
with opening(filename) as f:
# ...read data from f...
Tutaj with
instrukcje są używane do owijania wykonanie bloku z metody zdefiniowane przez context managers. Działa to jak przedłużone oświadczenie try...except...finally
w pakiecie czystego generatora, a instrukcja as
przypisuje wygenerowany przez generator wynik z menedżera kontekstów do zmiennej w celu jej wydłużenia. (Jest to omówione szczegółowo w Python 3 Language Reference: The with
Statement.)
Wreszcie as
można stosować podczas importu modułów skojarzenie modułu z innym (zwykle krócej) Nazwa:
import foo.bar.baz as fbb
ten jest szczegółowo omówiony w Python 3 Language Reference: The import
Statement.
Spróbuj
except Exception as e:
print(e)
Są to zmiany od pytona 2:
try:
1/0
except Exception as e: # (as opposed to except Exception, e:)
#^that will just look for two classes, Exception and e
print(e) # for the repr
print(str(e)) # for just the message
print(e.args) # the arguments that the exception has been called with.
# the first one is usually the message.
- 1. Jak wydrukować drzewo w Pythonie?
- 2. Jak wydrukować błąd w Pythonie?
- 3. Jak wydrukować ciąg znaków dosłownie w Pythonie
- 4. Jak wydrukować listę w Pythonie "ładnie"
- 5. Pomijanie wydruku komunikatu "Wyjątek ... ignorowane" w Pythonie 3
- 6. Znalezienie wyjątek w Pythonie Multiprocessing
- 7. Jak obliczyć średnią ruchomą w Pythonie 3?
- 8. jak wydrukować wyjątek przy użyciu rejestratora?
- 9. Jak wydrukować wiersz słownika po linii w Pythonie?
- 10. Rails 3 zignorować wyjątek wyjątek wyjątek Postgres
- 11. string.lower w Pythonie 3
- 12. Drukowanie listy liczb w pythonie v.3
- 13. Jak kodować URL w Pythonie 3?
- 14. Jak zainstalować pandy w Pythonie 3?
- 15. Niestandardowe sortowanie w Pythonie 3
- 16. Przepływ pracy w Pythonie 3?
- 17. Implementacja Websocket w Pythonie 3
- 18. Jak mogę wydrukować n-tą literę alfabetu w Pythonie?
- 19. Jak mogę wydrukować wiele znaczących cyfr w Pythonie?
- 20. Czytaj MP3 w Pythonie 3
- 21. czytanie skompresowanego pliku csv w pythonie 3
- 22. Python 3 wyjątek nie drukuje nową linię
- 23. Złapać przerwaną rurę w Pythonie 2 I Pythonie 3
- 24. który wyjątek przechwytuje błąd xxxx w pythonie
- 25. Jaka jest równoważność w Pythonie 3 liter w Pythonie 2?
- 26. asp.net mvc 3 pobierz wyjątek
- 27. Unikać „wyjątek ignorowany” w Pythonie wzmocnionej generatora
- 28. obsługuje nolearn/Lasagne Pythonie 3
- 29. Złap Wyjątek w CakePHP 3: nie działa
- 30. ciągów formatowania stdin.write() w Pythonie 3.x
To nie ma sensu, co jest związane z nazwą 'exception' dokładnie? Opublikuj fragment kodu, w którym pojawia się to zachowanie, i najbardziej znaczącą część, w której zainicjowano nazwę "exception". –