📄 errorbean.java
字号:
package com.corejsf;import java.io.PrintWriter;import java.io.StringWriter;import java.sql.SQLException;import java.util.Map;import javax.faces.context.FacesContext;import javax.servlet.ServletException;public class ErrorBean { public String getStackTrace() { FacesContext context = FacesContext.getCurrentInstance(); Map request = context.getExternalContext().getRequestMap(); Throwable ex = (Throwable) request.get("javax.servlet.error.exception"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); fillStackTrace(ex, pw); return sw.toString(); } private static void fillStackTrace(Throwable t, PrintWriter w) { if (t == null) return; t.printStackTrace(w); if (t instanceof ServletException) { Throwable cause = ((ServletException) t).getRootCause(); if (cause != null) { w.println("Root cause:"); fillStackTrace(cause, w); } } else if (t instanceof SQLException) { Throwable cause = ((SQLException) t).getNextException(); if (cause != null) { w.println("Next exception:"); fillStackTrace(cause, w); } } else { Throwable cause = t.getCause(); if (cause != null) { w.println("Cause:"); fillStackTrace(cause, w); } } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -