Class HttpClientException
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
io.leandev.appfuse.http.exception.HttpClientException
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
ClientErrorException, ServerErrorException
HTTP 客戶端異常基礎類別
所有 HTTP 客戶端相關的異常都繼承此類別。
此異常攜帶 HTTP 狀態碼資訊,便於異常處理器進行適當的回應轉換。
由 StandardHttpClient 根據下游回應建立時,另帶有
DownstreamHttpFailure,讓 REST handler 能區分「本服務的語義化錯誤」與「下游錯誤」。
設計理念
- 輕量級:只攜帶狀態碼和訊息,不依賴外部框架
- 零依賴:純 Java RuntimeException,無需額外依賴
- 類型安全:透過子類別提供語義化的異常類型
使用範例
// 拋出異常
throw new NotFoundException("User not found");
// 捕捉異常
try {
httpClient.execute(request);
} catch (NotFoundException e) {
// 處理 404 錯誤
} catch (HttpClientException e) {
// 處理其他 HTTP 錯誤
int statusCode = e.getStatusCode();
}
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionHttpClientException(int statusCode, String message) 建立 HTTP 客戶端異常HttpClientException(int statusCode, String message, Throwable cause) 建立 HTTP 客戶端異常,包含原始異常 -
Method Summary
Modifier and TypeMethodDescription取得下游失敗診斷脈絡。int取得 HTTP 狀態碼boolean判斷此例外是否來自下游 HTTP 回應。Methods inherited from class Throwable
addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
-
Constructor Details
-
HttpClientException
建立 HTTP 客戶端異常- Parameters:
statusCode- HTTP 狀態碼(例如:404, 500)message- 錯誤訊息
-
HttpClientException
-
-
Method Details
-
getStatusCode
public int getStatusCode()取得 HTTP 狀態碼- Returns:
- HTTP 狀態碼
-
isDownstreamResponse
public boolean isDownstreamResponse()判斷此例外是否來自下游 HTTP 回應。
應用程式直接建立的語義化例外不會帶有此標記。
- Returns:
- 來自下游回應時為 true
-
getDownstreamFailure
取得下游失敗診斷脈絡。
此資訊只應用於伺服器端映射政策、audit 或 log,不應直接回傳給 API caller。
- Returns:
- 下游失敗脈絡;本服務自行建立的例外為 empty
-