跳至主要內容

...大约 3 分钟

状态码

从 0.10 版本开始 IoTDB 引入了状态码这一概念。例如,因为 IoTDB 需要在写入数据之前首先注册时间序列,一种可能的解决方案是:

try {
    writeData();
} catch (SQLException e) {
  // the most case is that the time series does not exist
  if (e.getMessage().contains("exist")) {
      //However, using the content of the error message is not so efficient
      registerTimeSeries();
      //write data once again
      writeData();
  }
}

利用状态码,我们就可以不必写诸如if (e.getErrorMessage().contains("exist"))的代码,只需要使用e.getStatusType().getCode() == TSStatusCode.TIME_SERIES_NOT_EXIST_ERROR.getStatusCode()

这里是状态码和相对应信息的列表:

状态码状态类型状态信息
200SUCCESS_STATUS成功状态
201STILL_EXECUTING_STATUS仍在执行状态
202INVALID_HANDLE_STATUS无效句柄状态
203INCOMPATIBLE_VERSION版本不兼容
298NODE_DELETE_FAILED_ERROR删除节点失败
299ALIAS_ALREADY_EXIST_ERROR路径别名已经存在
300PATH_ALREADY_EXIST_ERROR路径已经存在
301PATH_NOT_EXIST_ERROR路径不存在
302UNSUPPORTED_FETCH_METADATA_OPERATION_ERROR不支持的获取元数据操作
303METADATA_ERROR处理元数据错误
305OUT_OF_TTL_ERROR插入时间少于 TTL 时间边界
306CONFIG_ADJUSTERIoTDB 系统负载过大
307MERGE_ERROR合并错误
308SYSTEM_CHECK_ERROR系统检查错误
309SYNC_DEVICE_OWNER_CONFLICT_ERROR回传设备冲突错误
310SYNC_CONNECTION_EXCEPTION回传连接错误
311STORAGE_GROUP_PROCESSOR_ERROR存储组处理器相关错误
312STORAGE_GROUP_ERROR存储组相关错误
313STORAGE_ENGINE_ERROR存储引擎相关错误
314TSFILE_PROCESSOR_ERRORTsFile 处理器相关错误
315PATH_ILLEGAL路径不合法
316LOAD_FILE_ERROR加载文件错误
317STORAGE_GROUP_NOT_READY存储组还在恢复中,还不能接受读写操作
400EXECUTE_STATEMENT_ERROR执行语句错误
401SQL_PARSE_ERRORSQL 语句分析错误
402GENERATE_TIME_ZONE_ERROR生成时区错误
403SET_TIME_ZONE_ERROR设置时区错误
404NOT_STORAGE_GROUP_ERROR操作对象不是存储组
405QUERY_NOT_ALLOWED查询语句不允许
406AST_FORMAT_ERRORAST 格式相关错误
407LOGICAL_OPERATOR_ERROR逻辑符相关错误
408LOGICAL_OPTIMIZE_ERROR逻辑优化相关错误
409UNSUPPORTED_FILL_TYPE_ERROR不支持的填充类型
410PATH_ERROR路径相关错误
411QUERY_PROCESS_ERROR查询处理相关错误
412WRITE_PROCESS_ERROR写入相关错误
413WRITE_PROCESS_REJECT写入拒绝错误
414QUERY_ID_NOT_EXISTQuery id 不存在
500INTERNAL_SERVER_ERROR服务器内部错误
501CLOSE_OPERATION_ERROR关闭操作错误
502READ_ONLY_SYSTEM_ERROR系统只读
503DISK_SPACE_INSUFFICIENT_ERROR磁盘空间不足
504START_UP_ERROR启动错误
505SHUT_DOWN_ERROR关机错误
506MULTIPLE_ERROR多行语句执行错误
600WRONG_LOGIN_PASSWORD_ERROR用户名或密码错误
601NOT_LOGIN_ERROR没有登录
602NO_PERMISSION_ERROR没有操作权限
603UNINITIALIZED_AUTH_ERROR授权人未初始化
700PARTITION_NOT_READY分区表未准备好
701TIME_OUT操作超时
702NO_LEADERLeader 找不到
703UNSUPPORTED_OPERATION不支持的操作
704NODE_READ_ONLY节点只读
705CONSISTENCY_FAILURE一致性检查失败
706NO_CONNECTION连接获取失败
707NEED_REDIRECTION需要重定向
800CONFIG_ERROR配置文件有错误项

在最新版本中,我们重构了 IoTDB 的异常类。通过将错误信息统一提取到异常类中,并为所有异常添加不同的错误代码,从而当捕获到异常并引发更高级别的异常时,错误代码将保留并传递,以便用户了解详细的错误原因。
除此之外,我们添加了一个基础异常类“ProcessException”,由所有异常扩展。

Copyright © 2024 The Apache Software Foundation.
Apache IoTDB, IoTDB, Apache, the Apache feather logo, and the Apache IoTDB project logo are either registered trademarks or trademarks of The Apache Software Foundation in all countries

Have a question? Connect with us on QQ, WeChat, or Slack. Join the community now.