Class HttpExceptionMapper

java.lang.Object
io.leandev.appfuse.http.exception.HttpExceptionMapper

public class HttpExceptionMapper extends Object

HTTP 異常映射器

負責將 HTTP 狀態碼映射到對應的異常類別。 使用 Map 取代冗長的 if-else 鏈,提供更清晰和可維護的錯誤處理。

支援的狀態碼映射

  • 400 Bad Request → BadRequestException
  • 401 Unauthorized → NotAuthorizedException
  • 403 Forbidden → ForbiddenException
  • 404 Not Found → NotFoundException
  • 405 Method Not Allowed → NotAllowedException
  • 406 Not Acceptable → NotAcceptableException
  • 500 Internal Server Error → InternalServerErrorException
  • 503 Service Unavailable → ServiceUnavailableException
  • 其他 4xx → ClientErrorException
  • 其他 5xx → ServerErrorException
  • Constructor Details

    • HttpExceptionMapper

      public HttpExceptionMapper()
  • Method Details

    • map

      public RuntimeException map(int statusCode, String message)
      將 HTTP 狀態碼映射到對應的異常
      Parameters:
      statusCode - HTTP 狀態碼
      message - 錯誤訊息
      Returns:
      對應的 RuntimeException
    • mapDownstream

      public HttpClientException mapDownstream(DownstreamHttpFailure failure, String message)

      將確實來自下游 HTTP 回應的狀態映射成帶來源脈絡的例外。

      原有的語義化例外子型別會被保留,讓既有 catch 邏輯維持相容;REST handler 可再依 HttpClientException.isDownstreamResponse() 套用邊界映射政策。

      Parameters:
      failure - 下游失敗脈絡
      message - 僅供伺服器端診斷的錯誤訊息
      Returns:
      帶下游來源脈絡的 HTTP client 例外
    • isError

      public static boolean isError(int statusCode)
      檢查狀態碼是否表示錯誤(>= 400)
      Parameters:
      statusCode - HTTP 狀態碼
      Returns:
      true 如果是錯誤狀態碼