異常處理
更新時間:
TSDB-Client SDK 不強制處理異常,所有異常均以 RuntimeException 的形式拋出。用戶可以根據需要捕捉,處理異常。
常見異常
異常類 | 描述 |
---|---|
HttpClientException | Client 異常 |
HttpClientConnectionRefusedException | TSDB 服務器拒絕連接 |
HttpClientInitException | Client 初始化異常 |
HttpClientSocketTimeoutException | 請求超時 |
HttpServerErrorException | TSDB 服務端返回 5xx 錯誤碼 |
HttpServerNotSupportException | TSDB 服務端返回 4xx 錯誤碼 |
HttpUnknowStatusException | TSDB 服務端的響應碼未知 |
BufferQueueFullException | 異步提交緩沖隊列已滿 |
異常處理
同步接口與異常處理
try {
tsdb.ttl(10000);
} catch(HttpServerNotSupportException e) {
int status = e.getStatus();
String message = e.getMessage();
System.err.println(status + "," + message);
} catch(HttpServerErrorException e) {
int status = e.getStatus();
String message = e.getMessage();
System.err.println(status + "," + message);
}
異步接口與異常處理
在需要處理異常的時候,重寫 failed 方法。
QueryCallback cb = new QueryCallback() {
@Override
public void response(Query input, List<QueryResult> result) {
System.out.println("查詢參數:" + input);
System.out.println("返回結果:" + result);
}
// 在需要處理異常的時候,重寫 failed 方法
@Override
public void failed(Query request, Exception ex) {
super.failed(request, ex);
}
};
BatchPutCallback cb = new BatchPutCallback() {
@Override
public void response(List<Point> input, Result output) {
long afterNum = num.addAndGet(input.size());
System.out.println("成功處理" + input.size() + ",已處理" + afterNum);
}
@Override
public void failed(List<Point> input, Exception ex) {
ex.printStackTrace();
long afterNum = num.addAndGet(input.size());
System.out.println("失敗處理" + input.size() + ",已處理" + afterNum);
}
};
文檔內容是否對您有幫助?