Files
MeowBox-Core/internal/handler/httperr.go
2025-11-22 22:57:54 +08:00

45 lines
941 B
Go

package handler
import (
"log"
"net/http"
)
// ErrorHandler Common error response handler
func ErrorHandler(w http.ResponseWriter, r *http.Request, statusCode int) {
loadErrorTemplate()
log.Printf("[Info] [Web Access] Handler http error page: %d, on path: %s", statusCode, r.URL.Path)
w.WriteHeader(statusCode)
SetHeaders(w, "text/html; charset=utf-8")
var title, message string
switch statusCode {
case http.StatusNotFound:
title = ""
message = ""
case http.StatusInternalServerError:
title = ""
message = ""
case http.StatusBadRequest:
title = ""
message = ""
case http.StatusForbidden:
title = ""
message = ""
default:
title = "Error"
message = "An unexpected error occurred."
}
data := errorPageData{
StatusCode: statusCode,
Title: title,
Message: message,
}
if err := errorTemplate.Execute(w, data); err != nil {
log.Printf("[Error] Failed to render error page: %v", err)
}
}