01: /*
02: * Copyright Aduna (http://www.aduna-software.com/) (c) 2007.
03: *
04: * Licensed under the Aduna BSD-style license.
05: */
06: package org.openrdf.http.server;
07:
08: import java.net.HttpURLConnection;
09:
10: /**
11: * HTTP-related exception indicating that an error occurred in a server. Status
12: * codes for these types of errors are in the 5xx range. The default status code
13: * for constructors without a <tt>statusCode</tt> parameter is
14: * <tt>500 Internal Server Error</tt>.
15: *
16: * @author Arjohn Kampman
17: */
18: public class ServerHTTPException extends HTTPException {
19:
20: private static final long serialVersionUID = -3949837199542648966L;
21:
22: private static final int DEFAULT_STATUS_CODE = HttpURLConnection.HTTP_INTERNAL_ERROR;
23:
24: /**
25: * Creates a {@link ServerHTTPException} with status code 500 "Internal
26: * Server Error".
27: */
28: public ServerHTTPException() {
29: this (DEFAULT_STATUS_CODE);
30: }
31:
32: /**
33: * Creates a {@link ServerHTTPException} with status code 500 "Internal
34: * Server Error".
35: */
36: public ServerHTTPException(String msg) {
37: this (DEFAULT_STATUS_CODE, msg);
38: }
39:
40: /**
41: * Creates a {@link ServerHTTPException} with status code 500 "Internal
42: * Server Error".
43: */
44: public ServerHTTPException(String msg, Throwable t) {
45: this (DEFAULT_STATUS_CODE, t);
46: }
47:
48: /**
49: * Creates a {@link ServerHTTPException} with the specified status code.
50: *
51: * @throws IllegalArgumentException
52: * If <tt>statusCode</tt> is not in the 5xx range.
53: */
54: public ServerHTTPException(int statusCode) {
55: super (statusCode);
56: }
57:
58: /**
59: * Creates a {@link ServerHTTPException} with the specified status code.
60: *
61: * @throws IllegalArgumentException
62: * If <tt>statusCode</tt> is not in the 5xx range.
63: */
64: public ServerHTTPException(int statusCode, String message) {
65: super (statusCode, message);
66: }
67:
68: /**
69: * Creates a {@link ServerHTTPException} with the specified status code.
70: *
71: * @throws IllegalArgumentException
72: * If <tt>statusCode</tt> is not in the 5xx range.
73: */
74: public ServerHTTPException(int statusCode, String message,
75: Throwable t) {
76: super (statusCode, message, t);
77: }
78:
79: /**
80: * Creates a {@link ServerHTTPException} with the specified status code.
81: *
82: * @throws IllegalArgumentException
83: * If <tt>statusCode</tt> is not in the 5xx range.
84: */
85: public ServerHTTPException(int statusCode, Throwable t) {
86: super (statusCode, t);
87: }
88:
89: @Override
90: protected void setStatusCode(int statusCode) {
91: if (statusCode < 500 || statusCode > 599) {
92: throw new IllegalArgumentException(
93: "Status code must be in the 5xx range, is: "
94: + statusCode);
95: }
96:
97: super.setStatusCode(statusCode);
98: }
99: }
|