code: public static AlluxioStatusException from(Status status) {
      Preconditions.checkNotNull(status, "status");
      Preconditions.checkArgument(status != Status.OK, "OK is not an error status");
      String message = status.getDescription();
      Throwable cause = status.getCause();
      switch (status.getCode()) {
        case CANCELLED:
          return new CancelledException(message, cause);
        case INVALID_ARGUMENT:
          return new InvalidArgumentException(message, cause);
        case DEADLINE_EXCEEDED:
          return new DeadlineExceededException(message, cause);
        case NOT_FOUND:
          return new NotFoundException(message, cause);
        case ALREADY_EXISTS:
          return new AlreadyExistsException(message, cause);
        case PERMISSION_DENIED:
          return new PermissionDeniedException(message, cause);
        case UNAUTHENTICATED:
          return new UnauthenticatedException(message, cause);
        case RESOURCE_EXHAUSTED:
          return new ResourceExhaustedException(message, cause);
        case FAILED_PRECONDITION:
          return new FailedPreconditionException(message, cause);
        case ABORTED:
          return new AbortedException(message, cause);
        case OUT_OF_RANGE:
          return new OutOfRangeException(message, cause);
        case UNIMPLEMENTED:
          return new UnimplementedException(message, cause);
        case INTERNAL:
          return new InternalException(message, cause);
        case UNAVAILABLE:
          return new UnavailableException(message, cause);
        case DATA_LOSS:
          return new DataLossException(message, cause);
        default:
          return new UnknownException(message, cause);
      }
    }
docs: Converts an Alluxio exception from status and message representation to native representation.
  The status must not be null or {@link Status#OK}.
  
  @param status the status
  @return an {@link AlluxioStatusException} for the given status and message