时序数据库 TSDB 异常处理

By | 2021年4月22日

TSDB-Client SDK 不强制处理异常,所有异常均以 RuntimeException 的形式抛出。用户可以根据需要捕捉,处理异常。

常见异常

异常类 描述
HttpClientException Client 异常
HttpClientConnectionRefusedException TSDB 服务器拒绝连接
HttpClientInitException Client 初始化异常
HttpClientSocketTimeoutException 请求超时
HttpServerErrorException TSDB 服务端返回 5xx 错误码
HttpServerNotSupportException TSDB 服务端返回 4xx 错误码
HttpUnknowStatusException TSDB 服务端的响应码未知
BufferQueueFullException 异步提交缓冲队列已满

异常处理

同步接口与异常处理

  
  1. try {
  2. tsdb.ttl(10000);
  3. } catch(HttpServerNotSupportException e) {
  4. int status = e.getStatus();
  5. String message = e.getMessage();
  6. System.err.println(status + "," + message);
  7. } catch(HttpServerErrorException e) {
  8. int status = e.getStatus();
  9. String message = e.getMessage();
  10. System.err.println(status + "," + message);
  11. }

异步接口与异常处理

在需要处理异常的时候,重写 failed 方法。

  
  1. QueryCallback cb = new QueryCallback() {
  2. @Override
  3. public void response(Query input, List<QueryResult> result) {
  4. System.out.println("查询参数:" + input);
  5. System.out.println("返回结果:" + result);
  6. }
  7. // 在需要处理异常的时候,重写 failed 方法
  8. @Override
  9. public void failed(Query request, Exception ex) {
  10. super.failed(request, ex);
  11. }
  12. };
  
  1. BatchPutCallback cb = new BatchPutCallback() {
  2. @Override
  3. public void response(List<Point> input, Result output) {
  4. long afterNum = num.addAndGet(input.size());
  5. System.out.println("成功处理" + input.size() + ",已处理" + afterNum);
  6. }
  7. @Override
  8. public void failed(List<Point> input, Exception ex) {
  9. ex.printStackTrace();
  10. long afterNum = num.addAndGet(input.size());
  11. System.out.println("失败处理" + input.size() + ",已处理" + afterNum);
  12. }
  13. };

请关注公众号获取更多资料

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注