¿Cómo especifico un rescate global en caso de una excepción, y si usa Sinatra para una API o aplicación, cómo maneja el registro?Excepciones de rescate y registro global en Sinatra
Respuesta
404 pueden ser manejados con la ayuda del método de not_found
como por ejemplo:
not_found do
'Site does not exist.'
end
500s pueden ser manejados por una llamada al método error con un bloque de, por ejemplo:
error do
"Application error. Pls try later."
end
Los detalles de el error se puede acceder a través del sinatra.error
en request.env
como lo siguiente:
error do
'An error occured: ' + request.env['sinatra.error'].message
end
Tuve problemas para hacerlo funcionar de fábrica en mi entorno de desarrollo. Para que funcione, tuve que configurar show_exceptions
como falso en mi configuración de sinatra.
class BaseApp < Sinatra::Base
configure { set :show_exceptions, false }
error do |err|
raise "Error: #{err}"
end
end
Esta configuración, cuando se establece en true, permite que las páginas de error que muestran traza y la información del entorno cuando se produce una excepción unhanded, pero sólo pude errores personalizados de fuego por su desactivación.
Esta es la respuesta correcta. No funciona sin la línea de configuración. – pmontrasio
En realidad, tanto ': show_exceptions' como': raise_errors' se deben deshabilitar (es decir, establecer en falso) para que el bloque de error genérico (es decir, ninguna clase de excepción o código de estado) se ejecute y devuelva. –
Tenga en cuenta que 'err' en el ejemplo es el mensaje de la excepción, que también se puede obtener por' env ['sinatra.error']. Message'. –
- 1. Excepciones de registro global de los servicios de ASP.NET [ScriptService]
- 2. IOS - manejador de excepciones global
- 3. Java: Controlador global de excepciones
- 4. Manejo global de excepciones en Jersey
- 5. Gestión global de excepciones en C++
- 6. Python registro global
- 7. Controlador global de excepciones en CLR Procedimiento almacenado
- 8. Controlador global de excepciones de WPF
- 9. Excepciones de registro automático en Ruby
- 10. jQuery son posibles excepciones a global $ .ajaxSetup()?
- 11. Cómo cambiar el nivel de registro en Sinatra
- 12. .NET Controlador global de excepciones en la aplicación de consola
- 13. Controlador global de excepciones de JavaScript (en Chrome)
- 14. Sinatra y HTTP PUT
- 15. MVC [HandleError] HandleErrorAttribute llamado dos veces al utilizar registro global
- 16. Error de registro de filtro global en MVC 3 RC
- 17. trabajo con rescate en Rails
- 18. Registro global de formatos de campo en Wicket
- 19. ¿Estoy abusando de "rescate" por chequeos nulos?
- 20. ¿Iniciar sesión en Sinatra?
- 21. Gestión global de excepciones para el control de formas
- 22. Configuración de Sinatra y Rack Protection
- 23. Manejo de Excepciones únicas de registro en un controlador
- 24. rescate de ActiveRecord :: RecordNotFound en Rails
- 25. ¿Cómo puedo ver un registro completo de excepciones en JAVA?
- 26. Symfony 2 Excepciones de registro en la consola
- 27. Ruby ignora el rescate ArgumentError
- 28. Diferencia entre 'global' y 'estática global'
- 29. Variable global para opciones de depuración y registro en GAE Python
- 30. ¿Cómo registro las excepciones no detectadas en PHP?
¿cómo hago para recuperar la excepción si es 500, me refiero a lo que salió mal? Gracias. – Jane
@Jane ver mi respuesta actualizada – maprihoda