pl.trammer.ludwik.ludproxy.errors
Class HttpError

java.lang.Object
  extended by java.lang.Throwable
      extended by java.lang.Exception
          extended by pl.trammer.ludwik.ludproxy.errors.HttpError
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
HttpBadRequest, HttpInternalServerError

public abstract class HttpError
extends Exception

Klasa abstrakcyjna definiujące wyjątki odnoszące się do konkretnych kodów błędów z protokołu HTTP. Taki wyjątek, stworzony gdziekolwiek w wątku obsługi połączenia zostanie automatycznie "złapany" i przesłany do klienta w formie odpowiedzi HTTP z odpowiednim kodem błędu i stroną informacyjną zawierającą opis błedu.

Na przykład jeśli w czasie parsowania nagłówka zapytania wygeneruję wyjątek:

throw new HttpInternalServerError("Wszystko mi się pomieszało!");

zostanie on przesłany do klienta jako odpowiedź HTTP ze statusem 500, a użytkownikowi zostanie wyświetlona strona z opisem błędu.

Strona generowana jest na podstawie wzoru z pliku error_template.html. Najłatwiej zobaczyć przykładową stronę błędu wpisując w przeglądarce adres nieistniejącej domeny.

Author:
Ludwik Trammer
See Also:
Serialized Form

Constructor Summary
HttpError(String msg)
          Konstruktor tworzący wyjątek.
 
Method Summary
 String getErrorResponse(RequestHeader requestHeader, ResponseHeader responceHeader)
          Zwraca tekst odpowiedź HTTP odpowiadającą danemu błędowi.
 byte[] getErrorResponseAsBytes(RequestHeader requestHeader, ResponseHeader responceHeader)
          Działa identycznie do getErrorResponse(RequestHeader, ResponseHeader), ale zwraca odpowiedź jako tablicę bajtów, gotową do bycia wysłaną do klienta przez OutputStream.
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

HttpError

public HttpError(String msg)
Konstruktor tworzący wyjątek.

Parameters:
msg - wiadomość, która zostanie wyświetlona na stronie błędu przesłanej do klienta
Method Detail

getErrorResponse

public String getErrorResponse(RequestHeader requestHeader,
                               ResponseHeader responceHeader)
Zwraca tekst odpowiedź HTTP odpowiadającą danemu błędowi. Odpowiedź składa się z nagłówków (w tym odpowiednio ustawionego statusu odpowiedzi) oraz treści, czyli informacyjnej strony HTML i jest gotowa do bycia wysłaną do klienta.

Parameters:
requestHeader - nagłówek bierzącego zapytania otrzymanego od klienta, lub wartość null jeśli niedotyczy. Zostanie wyświetlony w celach informacyjnych na stronie błedu przekazanej do klienta.
responceHeader - nagłówek bierzącej odpowiedzi otrzymanego od serwera, lub wartość null jeśli niedotyczy. Zostanie wyświetlony w celach informacyjnych na stronie błedu przekazanej do klienta.
Returns:
tekst odpowiedź HTTP odpowiadającą danemu błędowi.

getErrorResponseAsBytes

public byte[] getErrorResponseAsBytes(RequestHeader requestHeader,
                                      ResponseHeader responceHeader)
Działa identycznie do getErrorResponse(RequestHeader, ResponseHeader), ale zwraca odpowiedź jako tablicę bajtów, gotową do bycia wysłaną do klienta przez OutputStream.

Parameters:
requestHeader - nagłówek bierzącego zapytania otrzymanego od klienta, lub wartość null jeśli niedotyczy. Zostanie wyświetlony w celach informacyjnych na stronie błedu przekazanej do klienta.
responceHeader - nagłówek bierzącej odpowiedzi otrzymanego od serwera, lub wartość null jeśli niedotyczy. Zostanie wyświetlony w celach informacyjnych na stronie błedu przekazanej do klienta.
Returns:
odpowiedź HTTP odpowiadającą danemu błędowi, w formie tablicy bajtów.