<!--

    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      | 内部操作重试失败                  |
| 714  | NO_SUCH_QUERY                     | 查询不存在                     |
| 715  | QUERY_WAS_KILLED                  | 查询执行时被终止                  |
| 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                 | 用户未拥有对应角色                 |
| 808  | ROLE_NOT_EXIST                    | 角色不存在                     |
| 809  | ROLE_ALREADY_EXIST                | 角色已存在                     |
| 810  | ALREADY_HAS_PRIVILEGE             | 已拥有对应权限                   |
| 811  | NOT_HAS_PRIVILEGE                 | 未拥有对应权限                   |
| 812  | CLEAR_PERMISSION_CACHE_ERROR      | 清空权限缓存失败                  |
| 813  | UNKNOWN_AUTH_PRIVILEGE            | 未知权限                      |
| 814  | UNSUPPORTED_AUTH_OPERATION        | 不支持的权限操作                  |
| 815  | AUTH_IO_EXCEPTION                 | 权限模块IO异常                  |
| 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 副本组        |
| 907  | LACK_DATA_PARTITION_ALLOCATION    | 调用创建数据分区方法的返回结果里缺少信息      |
| 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”，由所有异常扩展。
