X-Git-Url: http://jaekl.net/gitweb/?p=frank.git;a=blobdiff_plain;f=prod%2Fnet%2Fjaekl%2Ffrank%2FErrorHandler.java;fp=prod%2Fnet%2Fjaekl%2Ffrank%2FErrorHandler.java;h=c1d72bd8d96bcaa8c3fc35434b66ae707275ee2f;hp=0000000000000000000000000000000000000000;hb=60dc53edca9ae2bcd6703e02b26acd47ef3d61a8;hpb=418e4d229a8b607b022cfb867bb702bec1765d13 diff --git a/prod/net/jaekl/frank/ErrorHandler.java b/prod/net/jaekl/frank/ErrorHandler.java new file mode 100644 index 0000000..c1d72bd --- /dev/null +++ b/prod/net/jaekl/frank/ErrorHandler.java @@ -0,0 +1,105 @@ +package net.jaekl.frank; + +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.io.PrintWriter; +import java.util.Locale; + +import net.jaekl.qd.http.InvalidResponseException; + +public class ErrorHandler { + static final String JAVASCRIPT = + ""; + + void writeScript(PrintWriter pw) { + pw.println(JAVASCRIPT); + } + + void explain(PrintWriter pw, Throwable t, FrankBundle bundle) { + Throwable cause = t; + if (t instanceof FrankException) { + if (null != t.getCause()) { + cause = t.getCause(); + } + } + + pw.println("
"); + if (cause instanceof InvalidResponseException) { + InvalidResponseException ire = (InvalidResponseException)cause; + + pw.println(bundle.get(FrankBundle.INVALID_RESPONSE)); + pw.println("
"); + pw.println("
" + bundle.get(FrankBundle.URL_CONTACTED) + + " | " + ire.getUrl() + " |
" + bundle.get(FrankBundle.REQUEST_MADE) + + " | " + ire.getMethod() + " |
" + bundle.get(FrankBundle.ANSWER_RECEIVED) + + " | " + ire.getResponse() + " |
" + bundle.get(FrankBundle.MAYBE_SERVER_PROBLEM) + "
"); + } + else { + pw.println(bundle.get(FrankBundle.UNEXPECTED_EXCEPTION)); + } + pw.println(""); + } + + void writeErrorPage(PrintWriter pw, Throwable t, Locale locale) { + Style style = new Style(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + PrintStream ps = new PrintStream(baos); + FrankBundle bundle = FrankBundle.getInst(locale); + + pw.println(""); + pw.println("" + + bundle.get(FrankBundle.FRANK) + ": " + + bundle.get(FrankBundle.UNEXPECTED_ERROR) + + " |
"); + pw.println("
"); + + t.printStackTrace(ps); + String stackTrace = baos.toString(); + pw.println(stackTrace); + + pw.println("\n\n
Click here to return to the main page.
"); + pw.println(""); + } +}