public RuntimeException throwTException(RuntimeException e) throws TException {
    if (e.getCause() instanceof NoSuchObjectException) {
      throw (NoSuchObjectException) e.getCause();
    } else if (e.getCause() instanceof AlreadyExistsException) {
      throw (AlreadyExistsException) e.getCause();
    } else if (e.getCause() instanceof InvalidOperationException) {
      throw (InvalidOperationException) e.getCause();
    } else if (e.getCause() instanceof InvalidObjectException) {
      throw (InvalidObjectException) e.getCause();
    } else if (e.getCause() instanceof MetaException) {
      throw (MetaException) e.getCause();
    } else if (e.getCause() instanceof UnknownDBException) {
      throw (UnknownDBException) e.getCause();
    } else if (e.getCause() instanceof UnknownTableException) {
      throw (UnknownTableException) e.getCause();
    } else {
      throw e;
    }
  }
Cache {@link AuthenticatedHiveClientPool} with {@link TableMetaStore} key.
amoro-common/src/main/java/org/apache/amoro/hive/CachedHiveClientPool.java