Używam biblioteki gammu Pythona do wysyłania smsów. Czasami coś jest nie tak i chciałbym poradzić sobie z wyjątkiem. Opis wyjątków znajduje się tutaj: https://wammu.eu/ docs/manual/python/exceptions.html#module-gammu.exception
Mam problem z uzyskaniem i zwróceniem błędów z takich sytuacji. Wydrukowałem:
print(sys.exc_info())
Ma to skutek:
(<class 'gammu.ERR_UNKNOWN'>, ERR_UNKNOWN({'Text': 'Nieznany błąd.', 'Where': 'SendSMS', 'Code': 27}), <traceback object at 0x740a6cd8>)
Jeśli przypiszę:
error_obj = sys.exc_info()
Jak mogę z tego uzyskać: tekst, kod i wpisz ERROR (tutaj jest ERR_UKNOWN)? Będę wdzięczny za pomoc.
2 odpowiedzi
cls, exception, _ = sys.exc_info()
text = exception['Text'] # or exception.Text ?
code = exception['Code'] # or exception.Code ?
print(cls, text, code)
Spójrz także na moduł traceback
:
import traceback
try:
1/0
except ArithmeticError as e:
traceback.print_exc()
Powinieneś móc użyć args
na wyjątku, aby dostać się do Text
:
print(error_obj.args)
error_obj.args[0]['Text']
Podobne pytania
Nowe pytania
python
Python to wielozadaniowy, wielozadaniowy język programowania dynamicznie typowany. Został zaprojektowany tak, aby był szybki do nauczenia się, zrozumienia i użycia oraz wymuszania czystej i jednolitej składni. Należy pamiętać, że Python 2 oficjalnie nie jest obsługiwany od 01-01-2020. Mimo to, w przypadku pytań Pythona specyficznych dla wersji, dodaj znacznik [python-2.7] lub [python-3.x]. Korzystając z wariantu Pythona (np. Jython, PyPy) lub biblioteki (np. Pandas i NumPy), należy umieścić go w tagach.
exception.Text
, jeśli to nie pomoże, a następnie spróbuj wydrukować wszystkich członkówprint(vars(exception))