/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.jena.sparql.engine.http; import org.apache.jena.query.QueryException ; /** Exception class for all operations in the SPARQL client library. * Error codes are as HTTP status codes. */ public class QueryExceptionHTTP extends QueryException { private static final long serialVersionUID = 99L; // Serilizable. public static final int noResponseCode = -1234 ; private int responseCode = noResponseCode ; private String responseMessage = null ; // Codes for extra errors. We use HTTP error codes so // these are negative to avoid clashes public static final int NoServer = -404 ; /** * Constructor for QueryExceptionHTTP. * @param responseCode * @param responseMessage */ public QueryExceptionHTTP(int responseCode, String responseMessage) { super(responseMessage) ; this.responseCode = responseCode ; this.responseMessage = responseMessage ; } /** * Constructor for QueryExceptionHTTP. * @param responseCode */ public QueryExceptionHTTP(int responseCode) { super() ; this.responseCode = responseCode ; this.responseMessage = null ; } /** The code for the reason for this exception * @return responseCode */ public int getResponseCode() { return responseCode ; } /** The messge for the reason for this exception * @return message */ public String getResponseMessage() { return responseMessage ; } /** * Constructor for HttpException used for some unexpected execution error. * @param cause */ public QueryExceptionHTTP(Throwable cause) { super(cause); this.responseCode = noResponseCode ; this.responseMessage = null ; } public QueryExceptionHTTP(String msg, Throwable cause) { super(msg, cause); this.responseCode = noResponseCode ; this.responseMessage = msg ; } public QueryExceptionHTTP(int responseCode, String message, Throwable cause) { super(message, cause); this.responseCode = responseCode; } @Override public String toString() { StringBuilder sb = new StringBuilder() ; sb.append("HttpException: ") ; int code = getResponseCode() ; if ( code != QueryExceptionHTTP.noResponseCode ) { sb.append(code) ; if ( getResponseMessage() != null ) { sb.append(" ") ; sb.append(getResponseMessage()) ; } } else { sb.append(getCause().toString()+": "+getMessage()) ; } return sb.toString() ; } }