Come si specifica un salvataggio globale in caso di un'eccezione e se si utilizza Sinatra per un'API o un'applicazione, come si gestisce la registrazione?Eccezioni globali di salvataggio e registrazione in Sinatra
risposta
404s possono essere gestiti con l'aiuto del metodo not_found
come ad esempio:
not_found do
'Site does not exist.'
end
500s possono essere gestite chiamando il metodo errore con un blocco, ad esempio:
error do
"Application error. Pls try later."
end
I dettagli l'errore è accessibile tramite sinatra.error
in request.env
in questo modo:
error do
'An error occured: ' + request.env['sinatra.error'].message
end
Ho avuto problemi a ottenere questo funzionamento fuori dalla scatola nel mio ambiente di sviluppo - per farlo funzionare, ho dovuto impostare show_exceptions
su falso nella mia configurazione di Sinatra.
class BaseApp < Sinatra::Base
configure { set :show_exceptions, false }
error do |err|
raise "Error: #{err}"
end
end
Questa impostazione, se impostato su true, abilita pagine di errore che mostrano backtrace e informazioni di ambiente quando si verifica un'eccezione unhanded, ma ho potuto solo gli errori personalizzati Fire di disabilitarlo.
Questa è la risposta corretta. Non funziona senza la riga di configurazione. – pmontrasio
In realtà, entrambi ': show_exceptions' e': raise_errors' devono essere disabilitati (cioè, impostati su false) in modo che il blocco di errore generico (cioè, nessuna classe di eccezioni o codice di stato) sia eseguito e restituito. –
Si noti che 'err' nell'esempio è il messaggio dell'eccezione, che può anche essere ottenuto da' env ['sinatra.error']. Message'. –
- 1. Perché abbiamo bisogno di eccezioni globali e globali nei montanti?
- 2. Gestore di eccezioni globali WPF
- 3. Eccezioni prese e non rilevate di registrazione?
- 4. Gestire le eccezioni globali in VB
- 5. . Gestore di eccezioni globali .NET nell'applicazione console
- 6. Registrazione eccezioni SignalR?
- 7. Salvataggio del profilo con la registrazione nella registrazione di Django
- 8. Registrazione di eccezioni ASP classiche (errori 500 e 500.100)
- 9. Symfony 2 Eccezioni di registrazione nella console
- 10. Gestore di eccezioni globali per i servizi di Windows?
- 11. naudio registrazione audio dal microfono, quindi salvataggio
- 12. Registrazione di tutte le eccezioni in un'applicazione pyqt4
- 13. Gestore di eccezioni globali non interrogate -> email per me?
- 14. Registrazione CherryPy: come configurare e utilizzare i logger globali e di livello applicazioni?
- 15. Sinatra e http PUT
- 16. Globali e singleton in Python
- 17. globali Swift e funzioni globali in Objective C
- 18. Variabili globali e MPI
- 19. interfacce di registrazione e registrazione delle dipendenze
- 20. Sinatra e il punto interrogativo
- 21. Salvataggio e data di recupero in Firebase
- 22. Operatori globali e polimorfismo
- 23. Registrazione e annullamento della registrazione di BroadcastReceiver in un frammento
- 24. Utilizzo del modulo di registrazione di Python per registrare tutte le eccezioni e gli errori
- 25. Come cambiare il livello di log in Sinatra
- 26. Equivalente Python di Sinatra
- 27. Osservare globali non globali
- 28. Modulo di contatto in ruby, sinatra e haml
- 29. variabili dlopen e globali in C/C++
- 30. Le variabili globali e locali in R
Come faccio a recuperare l'eccezione se è 500, voglio dire che cosa è andato storto? Grazie. – Jane
@Jane vedere la mia risposta aggiornata – maprihoda