@Override
  public boolean equals(Object o) {
    if (this == o) {
      return true;
    }
    if (o == null || getClass() != o.getClass()) {
      return false;
    }

    RouterException that = (RouterException) o;
    return this.errorCode == that.errorCode && this.getCause().equals(that.getCause());
  }
Exceptions thrown by a {@link Router}. All exceptions are accompanied by a {@link RouterErrorCode}.
ambry-api/src/main/java/com/github/ambry/router/RouterException.java