Voltar
Páginas de Erro
Comportamento por ambiente
| Ambiente | 404 / 4xx / 5xx | Panic / Exceção |
|---|---|---|
production |
Página de erro estilizada | Página de erro 500 |
development |
Página de debug (com rotas registradas) | Página de debug (com stack trace) |
A página de debug é exibida automaticamente — não há rota dedicada. Qualquer erro ou panic em development a aciona diretamente.
Acionar erro em uma view
func PostView(ctx *router.Context) {
post := models.Buscar(ctx.ParamInt("id"))
if post == nil {
ctx.Error(404) // renderiza a página 404
return
}
// ...
}
Personalizar página de erro
import "kyrux/core/errors"
// Em qualquer init() ou Register():
errors.Set(404, func(w http.ResponseWriter, r *http.Request) {
// Renderize seu próprio template de 404
// ou retorne JSON para APIs:
w.Header().Set("Content-Type", "application/json")
w.WriteHeader(404)
json.NewEncoder(w).Encode(map[string]string{"error": "não encontrado"})
})
errors.Set(500, func(w http.ResponseWriter, r *http.Request) {
render.For("meuapp").Render(/* ... */)
})
Handlers registrados via
errors.Set()sempre têm prioridade, em qualquer ambiente.