Study
Echo

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.

Editor Latihan

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.