Uwielbiam przechwytywanie błędów Flask. To jest pięknie proste:Złapanie błędu 500 serwera w kolbie
@app.errorhandler(404)
def pageNotFound(error):
return "page not found"
działa jak urok. Ale nie działa dla kodu błędu 500. Chcę złapać błędy Pythona, gdy coś idzie nie tak, wyjątek jest podniesiony w kodzie. Czy to jest możliwe?
Należy zauważyć, że jeśli jawnie zadzwonić return abort(500)
w widoku, to obsługa błędu błędu 500 działa. Tak jest wyraźnie w przypadku niepowodzenia kodu Pythona.
Czy to możliwe?
Czy możesz wyjaśnić, czego szukasz? Nie rozumiem, co masz na myśli przez "Chcę złapać błędy Pythona, gdy coś idzie nie tak, wyjątek jest podnoszona w kodzie". Czy masz na myśli to, że jeśli w normalnym widoku podnosi wyjątek Python, oczekujesz automatycznego wywoływania procedury obsługi błędów 500? –
To prawda, jeśli kod w normalnym widoku robi coś takiego jak dzielenie 1 przez 0 lub dostęp do trzeciego elementu w tablicy dwuelementowej lub cokolwiek innego, co podnosi wyjątek Pythona, a wyjątek jest nieprzechwycony, chcę specjalną metodę widoku biegać. Dekorowanie funkcji za pomocą '@ app.errorhandler (500)' nie wydaje się zdziałać. –