<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at
    
        http://www.apache.org/licenses/LICENSE-2.0
    
    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->

# 状态码

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()`。

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

| 状态码  | 状态类型                              | 状态信息                      |
|:-----|:----------------------------------|:--------------------------|
| 200  | SUCCESS_STATUS                    | 成功状态                      |
| 201  | INCOMPATIBLE_VERSION              | 版本不兼容                     |
| 202  | CONFIGURATION_ERROR               | 配置文件有错误项                  |
| 203  | START_UP_ERROR                    | 启动错误                      |
| 204  | SHUT_DOWN_ERROR                   | 关机错误                      |
| 300  | UNSUPPORTED_OPERATION             | 不支持的操作                    |
| 301  | EXECUTE_STATEMENT_ERROR           | 执行语句错误                    |
| 302  | MULTIPLE_ERROR                    | 多行语句执行错误                  |
| 303  | ILLEGAL_PARAMETER                 | 参数错误                      |
| 304  | OVERLAP_WITH_EXISTING_TASK        | 与正在执行的其他操作冲突              |
| 305  | INTERNAL_SERVER_ERROR             | 服务器内部错误                   |
| 306  | DISPATCH_ERROR                    | 分发错误                      |
| 400  | REDIRECTION_RECOMMEND             | 推荐客户端重定向                  |
| 500  | DATABASE_NOT_EXIST                | 数据库不存在                    |
| 501  | DATABASE_ALREADY_EXISTS           | 数据库已存在                    |
| 502  | SERIES_OVERFLOW                   | 序列数量超过阈值                  |
| 503  | TIMESERIES_ALREADY_EXIST          | 时间序列已存在                   |
| 504  | TIMESERIES_IN_BLACK_LIST          | 时间序列正在删除                  |
| 505  | ALIAS_ALREADY_EXIST               | 路径别名已经存在                  |
| 506  | PATH_ALREADY_EXIST                | 路径已经存在                    |
| 507  | METADATA_ERROR                    | 处理元数据错误                   |
| 508  | PATH_NOT_EXIST                    | 路径不存在                     |
| 509  | ILLEGAL_PATH                      | 路径不合法                     |
| 510  | CREATE_TEMPLATE_ERROR             | 创建物理量模板失败                 |
| 511  | DUPLICATED_TEMPLATE               | 元数据模板重复                   |
| 512  | UNDEFINED_TEMPLATE                | 元数据模板未定义                  |
| 513  | TEMPLATE_NOT_SET                  | 元数据模板未设置                  |
| 514  | DIFFERENT_TEMPLATE                | 元数据模板不一致                  |
| 515  | TEMPLATE_IS_IN_USE                | 元数据模板正在使用                 |
| 516  | TEMPLATE_INCOMPATIBLE             | 元数据模板不兼容                  |
| 517  | SEGMENT_NOT_FOUND                 | 未找到 Segment               |
| 518  | PAGE_OUT_OF_SPACE                 | SchemaFile 中 Page 空间不够    |
| 519  | RECORD_DUPLICATED                 | 记录重复                      |
| 520  | SEGMENT_OUT_OF_SPACE              | SchemaFile 中 segment 空间不够 |
| 521  | SCHEMA_FILE_NOT_EXISTS            | SchemaFile 不存在            |
| 522  | OVERSIZE_RECORD                   | 记录大小超过元数据文件页面大小           |
| 523  | SCHEMA_FILE_REDO_LOG_BROKEN       | SchemaFile 的 redo 日志损坏    |
| 524  | TEMPLATE_NOT_ACTIVATED            | 元数据模板未激活                  |
| 600  | SYSTEM_READ_ONLY                  | IoTDB 系统只读                |
| 601  | STORAGE_ENGINE_ERROR              | 存储引擎相关错误                  |
| 602  | STORAGE_ENGINE_NOT_READY          | 存储引擎还在恢复中，还不能接受读写操作       |
| 603  | DATAREGION_PROCESS_ERROR          | DataRegion 相关错误           |
| 604  | TSFILE_PROCESSOR_ERROR            | TsFile 处理器相关错误            |
| 605  | WRITE_PROCESS_ERROR               | 写入相关错误                    |
| 606  | WRITE_PROCESS_REJECT              | 写入拒绝错误                    |
| 607  | OUT_OF_TTL                        | 插入时间少于 TTL 时间边界           |
| 608  | COMPACTION_ERROR                  | 合并错误                      |
| 609  | ALIGNED_TIMESERIES_ERROR          | 对齐时间序列错误                  |
| 610  | WAL_ERROR                         | WAL 异常                    |
| 611  | DISK_SPACE_INSUFFICIENT           | 磁盘空间不足                    |
| 700  | SQL_PARSE_ERROR                   | SQL 语句分析错误                |
| 701  | SEMANTIC_ERROR                    | SQL 语义错误                  |
| 702  | GENERATE_TIME_ZONE_ERROR          | 生成时区错误                    |
| 703  | SET_TIME_ZONE_ERROR               | 设置时区错误                    |
| 704  | QUERY_NOT_ALLOWED                 | 查询语句不允许                   |
| 705  | LOGICAL_OPERATOR_ERROR            | 逻辑符相关错误                   |
| 706  | LOGICAL_OPTIMIZE_ERROR            | 逻辑优化相关错误                  |
| 707  | UNSUPPORTED_FILL_TYPE             | 不支持的填充类型                  |
| 708  | QUERY_PROCESS_ERROR               | 查询处理相关错误                  |
| 709  | MPP_MEMORY_NOT_ENOUGH             | MPP 框架中任务执行内存不足           |
| 710  | CLOSE_OPERATION_ERROR             | 关闭操作错误                    |
| 711  | TSBLOCK_SERIALIZE_ERROR           | TsBlock 序列化错误             |
| 712  | INTERNAL_REQUEST_TIME_OUT         | MPP 操作超时                  |
| 713  | INTERNAL_REQUEST_RETRY_ERROR      | 内部操作重试失败                  |
| 800  | UNINITIALIZED_AUTH_ERROR          | 授权模块未初始化                  |
| 801  | WRONG_LOGIN_PASSWORD              | 用户名或密码错误                  |
| 802  | NOT_LOGIN                         | 没有登录                      |
| 803  | NO_PERMISSION                     | 没有操作权限                    |
| 804  | USER_NOT_EXIST                    | 用户不存在                     |
| 805  | USER_ALREADY_EXIST                | 用户已存在                     |
| 806  | USER_ALREADY_HAS_ROLE             | 用户拥有对应角色                  |
| 807  | USER_NOT_HAS_ROLE                 | 用户未拥有对应角色                 |
| 900  | MIGRATE_REGION_ERROR              | Region 迁移失败               |
| 901  | CREATE_REGION_ERROR               | 创建 region 失败              |
| 902  | DELETE_REGION_ERROR               | 删除 region 失败              |
| 903  | PARTITION_CACHE_UPDATE_ERROR      | 更新分区缓存失败                  |
| 904  | CONSENSUS_NOT_INITIALIZED         | 共识层未初始化，不能提供服务            |
| 905  | REGION_LEADER_CHANGE_ERROR        | Region leader 迁移失败        |
| 906  | NO_AVAILABLE_REGION_GROUP         | 无法找到可用的 Region 副本组        |
| 1000 | DATANODE_ALREADY_REGISTERED       | DataNode 在集群中已经注册         |
| 1001 | NO_ENOUGH_DATANODE                | DataNode 数量不足，无法移除节点或创建副本 |
| 1002 | ADD_CONFIGNODE_ERROR              | 新增 ConfigNode 失败          |
| 1003 | REMOVE_CONFIGNODE_ERROR           | 移除 ConfigNode 失败          |
| 1004 | DATANODE_NOT_EXIST                | 此 DataNode 不存在            |
| 1005 | DATANODE_STOP_ERROR               | DataNode 关闭失败             |
| 1006 | REMOVE_DATANODE_ERROR             | 移除 datanode 失败            |
| 1007 | REGISTER_DATANODE_WITH_WRONG_ID   | 注册的 DataNode 中有错误的注册id    |
| 1008 | CAN_NOT_CONNECT_DATANODE          | 连接 DataNode 失败            |
| 1100 | LOAD_FILE_ERROR                   | 加载文件错误                    |
| 1101 | LOAD_PIECE_OF_TSFILE_ERROR        | 加载 TsFile 片段异常            |
| 1102 | DESERIALIZE_PIECE_OF_TSFILE_ERROR | 反序列化 TsFile 片段异常          |
| 1103 | SYNC_CONNECTION_ERROR             | 同步连接错误                    |
| 1104 | SYNC_FILE_REDIRECTION_ERROR       | 同步文件时重定向异常                |
| 1105 | SYNC_FILE_ERROR                   | 同步文件异常                    |
| 1106 | CREATE_PIPE_SINK_ERROR            | 创建 PIPE Sink 失败           |
| 1107 | PIPE_ERROR                        | PIPE 异常                   |
| 1108 | PIPESERVER_ERROR                  | PIPE server 异常            |
| 1109 | VERIFY_METADATA_ERROR             | 校验元数据失败                   |
| 1200 | UDF_LOAD_CLASS_ERROR              | UDF 加载类异常                 |
| 1201 | UDF_DOWNLOAD_ERROR                | 无法从 ConfigNode 下载 UDF     |
| 1202 | CREATE_UDF_ON_DATANODE_ERROR      | 在 DataNode 创建 UDF 失败      |
| 1203 | DROP_UDF_ON_DATANODE_ERROR        | 在 DataNode 卸载 UDF 失败      |
| 1300 | CREATE_TRIGGER_ERROR              | ConfigNode 创建 Trigger 失败  |
| 1301 | DROP_TRIGGER_ERROR                | ConfigNode 删除 Trigger 失败  |
| 1302 | TRIGGER_FIRE_ERROR                | 触发器执行错误                   |
| 1303 | TRIGGER_LOAD_CLASS_ERROR          | 触发器加载类异常                  |
| 1304 | TRIGGER_DOWNLOAD_ERROR            | 从 ConfigNode 下载触发器异常      |
| 1305 | CREATE_TRIGGER_INSTANCE_ERROR     | 创建触发器实例异常                 |
| 1306 | ACTIVE_TRIGGER_INSTANCE_ERROR     | 激活触发器实例异常                 |
| 1307 | DROP_TRIGGER_INSTANCE_ERROR       | 删除触发器实例异常                 |
| 1308 | UPDATE_TRIGGER_LOCATION_ERROR     | 更新有状态的触发器所在 DataNode 异常   |
| 1400 | NO_SUCH_CQ                        | CQ 任务不存在                  |
| 1401 | CQ_ALREADY_ACTIVE                 | CQ 任务已激活                  |
| 1402 | CQ_AlREADY_EXIST                  | CQ 任务已存在                  |
| 1403 | CQ_UPDATE_LAST_EXEC_TIME_ERROR    | CQ 更新上一次执行时间失败            |

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