errorbean.java

来自「struts框架的jsf组件的核心实用例子集合」· Java 代码 · 共 45 行

JAVA
45
字号
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 + =
减小字号Ctrl + -
显示快捷键?