### Question:
PrestoException extends RuntimeException { @Override public String getMessage() { String message = getRawMessage(); if (location.isPresent()) { message = format("line %s:%s: %s", location.get().getLineNumber(), location.get().getColumnNumber(), message); } return message; } PrestoException(ErrorCodeSupplier errorCode, String message);  PrestoException(ErrorCodeSupplier errorCode, Throwable throwable);  PrestoException(ErrorCodeSupplier errorCode, String message, Throwable cause);  PrestoException(ErrorCodeSupplier errorCodeSupplier, Optional<Location> location, String message, Throwable cause); ErrorCode getErrorCode(); Optional<Location> getLocation(); @Override String getMessage(); String getRawMessage();  }### Answer:
@Test public void testMessage() { PrestoException exception = new PrestoException(new TestErrorCode(), "test"); assertEquals(exception.getMessage(), "test"); exception = new PrestoException(new TestErrorCode(), new RuntimeException("test2")); assertEquals(exception.getMessage(), "test2"); exception = new PrestoException(new TestErrorCode(), new RuntimeException()); assertEquals(exception.getMessage(), "test"); }