This is an automated email from the ASF dual-hosted git repository.

qiaojialin pushed a commit to branch add_status_in_exception
in repository https://gitbox.apache.org/repos/asf/incubator-iotdb.git

commit 46bd486e4a4c81604b4e6e174a2eec2510c0ea47
Author: qiaojialin <[email protected]>
AuthorDate: Tue May 26 15:06:55 2020 +0800

    add status code in exception
---
 .../src/main/java/org/apache/iotdb/SessionExample.java      |  5 +++--
 .../iotdb/db/exception/metadata/MetadataException.java      |  3 +--
 .../exception/metadata/StorageGroupAlreadySetException.java |  5 ++++-
 .../src/main/java/org/apache/iotdb/rpc/RpcUtils.java        |  3 +--
 .../org/apache/iotdb/rpc/StatementExecutionException.java   | 13 +++++++++++++
 5 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/example/session/src/main/java/org/apache/iotdb/SessionExample.java 
b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
index d28faf6..c677c89 100644
--- a/example/session/src/main/java/org/apache/iotdb/SessionExample.java
+++ b/example/session/src/main/java/org/apache/iotdb/SessionExample.java
@@ -25,6 +25,8 @@ import java.util.Map;
 import org.apache.iotdb.rpc.BatchExecutionException;
 import org.apache.iotdb.rpc.IoTDBConnectionException;
 import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.rpc.TSStatusCode;
+import org.apache.iotdb.service.rpc.thrift.TSStatus;
 import org.apache.iotdb.session.Session;
 import org.apache.iotdb.session.SessionDataSet;
 import org.apache.iotdb.session.SessionDataSet.DataIterator;
@@ -46,9 +48,8 @@ public class SessionExample {
     try {
       session.setStorageGroup("root.sg1");
     } catch (StatementExecutionException e) {
-      if (!e.getMessage().contains("StorageGroupAlreadySetException")) {
+      if (e.getStatusCode() != 
TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode())
         throw e;
-      }
     }
 
     createTimeseries();
diff --git 
a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
 
b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
index b498219..4f220ff 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/exception/metadata/MetadataException.java
@@ -34,8 +34,7 @@ public class MetadataException extends IoTDBException {
   }
 
   public MetadataException(Throwable cause, int errorCode) {
-    super(cause, TSStatusCode.METADATA_ERROR.getStatusCode());
-    this.errorCode = errorCode;
+    super(cause, errorCode);
   }
 
   public MetadataException(String msg) {
diff --git 
a/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
 
b/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
index b196309..86c5695 100644
--- 
a/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
+++ 
b/server/src/main/java/org/apache/iotdb/db/exception/metadata/StorageGroupAlreadySetException.java
@@ -19,11 +19,14 @@
 
 package org.apache.iotdb.db.exception.metadata;
 
+import org.apache.iotdb.rpc.TSStatusCode;
+
 public class StorageGroupAlreadySetException extends MetadataException {
 
   private static final long serialVersionUID = 9110669164701929779L;
 
   public StorageGroupAlreadySetException(String path) {
-    super(String.format("%s has already been set to storage group", path));
+    super(String.format("%s has already been set to storage group", path),
+        TSStatusCode.PATH_ALREADY_EXIST_ERROR.getStatusCode());
   }
 }
diff --git a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java 
b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
index df2761e..db84839 100644
--- a/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
+++ b/service-rpc/src/main/java/org/apache/iotdb/rpc/RpcUtils.java
@@ -42,8 +42,7 @@ public class RpcUtils {
    */
   public static void verifySuccess(TSStatus status) throws 
StatementExecutionException {
     if (status.code != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
-      throw new StatementExecutionException(String.format("%d: %s",
-          status.code, status.message));
+      throw new StatementExecutionException(status);
     }
   }
 
diff --git 
a/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
 
b/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
index d7e09fc..bf1993d 100644
--- 
a/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
+++ 
b/service-rpc/src/main/java/org/apache/iotdb/rpc/StatementExecutionException.java
@@ -18,8 +18,17 @@
  */
 package org.apache.iotdb.rpc;
 
+import org.apache.iotdb.service.rpc.thrift.TSStatus;
+
 public class StatementExecutionException extends Exception{
 
+  private int statusCode;
+
+  public StatementExecutionException(TSStatus status) {
+    super(String.format("%d: %s", status.code, status.message));
+    this.statusCode = status.code;
+  }
+
   public StatementExecutionException(String reason) {
     super(reason);
   }
@@ -31,4 +40,8 @@ public class StatementExecutionException extends Exception{
   public StatementExecutionException(String message, Throwable cause) {
     super(message, cause);
   }
+
+  public int getStatusCode() {
+    return statusCode;
+  }
 }

Reply via email to