class HttpErrorResponseException extends RuntimeException {

    @Override
    public String toString()
    {
        StringBuilder stringBuilder = new StringBuilder();
        addTextToString("Message: " + getMessage(), stringBuilder);
        addTextToString("Status Code: " + statusCode, stringBuilder);
        addTextToString("Status Description: " + statusDescription, stringBuilder);
        addTextToString("Response Message: " + responseMessage, stringBuilder);
        return stringBuilder.toString();
    }

    public  HttpErrorResponseException(int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(String message, int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(String message, Throwable cause, int statusCode, String statusDescription, String responseMessage);
    public  HttpErrorResponseException(Throwable cause, int statusCode, String statusDescription, String responseMessage);
    protected  HttpErrorResponseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace, int statusCode,
        String statusDescription, String responseMessage);

}