Error Handling
Penjelasan
Echo punya HTTPErrorHandler bawaan, bisa DIGANTI dengan handler custom lewat e.HTTPErrorHandler = func(err error, c echo.Context) — dipanggil OTOMATIS setiap kali handler route mengembalikan error, terpusat di satu tempat, tidak perlu format error manual di tiap handler.
Contoh Konsep
func CustomErrorHandler(err error, c echo.Context) {
code := http.StatusInternalServerError
message := "Terjadi kesalahan server"
if he, ok := err.(*echo.HTTPError); ok {
code = he.Code
message = fmt.Sprintf("%v", he.Message)
}
c.JSON(code, map[string]interface{}{
"success": false,
"error": message,
})
}
// main(): e.HTTPErrorHandler = CustomErrorHandler
Praktikum
Buat CustomErrorHandler yang merespons format JSON {"success": false, "pesan": errorMessage}. Daftarkan lewat e.HTTPErrorHandler sebelum server dijalankan.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
return echo.NewHTTPError(http.StatusNotFound, "Produk tidak ditemukan") di dalam handler route adalah cara IDIOMATIS melempar error terstruktur di Echo — HTTPErrorHandler custom-mu otomatis menerimanya lewat type assertion err.(*echo.HTTPError) seperti dicontohkan di atas.