/** * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved. * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * http://www.ewcms.com */ package com.ewcms.scheduling; import java.io.PrintWriter; import java.io.StringWriter; /** * 运行时异常包装类 * * @author 吴智俊 */ public class BaseRuntimeExceptionWrapper extends BaseRuntimeException { private static final long serialVersionUID = 1235575331397583743L; private final String stackTrace; private final Exception originalException; public BaseRuntimeExceptionWrapper(Exception e) { super(e.getMessage(), e); originalException = e; stackTrace = readStackTrace(e); } private String readStackTrace(Exception e) { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); return sw.toString(); } public void printStackTrace() { printStackTrace(System.err); } public void printStackTrace(java.io.PrintStream s) { synchronized (s) { s.print(getClass().getName() + ": "); s.print(stackTrace); } } public void printStackTrace(java.io.PrintWriter s) { synchronized (s) { s.print(getClass().getName() + ": "); s.print(stackTrace); } } public void rethrow() throws Exception { throw originalException; } public Exception getOriginalException() { return originalException; } }