Class HttpExceptionMapper
java.lang.Object
io.leandev.appfuse.http.exception.HttpExceptionMapper
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic booleanisError(int statusCode) 檢查狀態碼是否表示錯誤(>= 400)將 HTTP 狀態碼映射到對應的異常mapDownstream(DownstreamHttpFailure failure, String message) 將確實來自下游 HTTP 回應的狀態映射成帶來源脈絡的例外。
-
Constructor Details
-
HttpExceptionMapper
public HttpExceptionMapper()
-
-
Method Details
-
map
將 HTTP 狀態碼映射到對應的異常- Parameters:
statusCode- HTTP 狀態碼message- 錯誤訊息- Returns:
- 對應的 RuntimeException
-
mapDownstream
將確實來自下游 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 如果是錯誤狀態碼
-