Java自定义异常案例--ExceptionManager(java源码)

时间:2013-02-03 12:36:53
【文件属性】:

文件名称:Java自定义异常案例--ExceptionManager(java源码)

文件大小:1KB

文件格式:RAR

更新时间:2013-02-03 12:36:53

java,exception,java异常学习,java异常处理

package com.hexiang.utils; import java.awt.Component; import javax.swing.JOptionPane; /** * This class ExceptionManager and its subclasses are a form of * Exception. It is used to wrap all the Throwable instances * and handle them in a unified way. It will show the information which consists of * StackTraces and Messages by using JOptionPanel. * * @author Estelle * @version 1.0 * @see java.lang.Exception * @since jdk 1.5 */ public class ExceptionManager extends RuntimeException { private static final long serialVersionUID = -6963187366089365790L; /** * This field alerter is used to show the information the Class offered. * * @see javax.swing.JOptionPane */ private JOptionPane alerter; /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(String msg). * * @param msg The message will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * ExceptionManager(String msg). */ public static ExceptionManager wrap(String msg){ return new ExceptionManager(msg); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(Throwable throwable). * * @param throwable The cause will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * ExceptionManager(Throwable throwable). */ public static ExceptionManager wrap(Throwable throwable){ return new ExceptionManager(throwable); } /** * This static method create an instance of the ExceptionManager by invoking the * constructor ExceptionManager(String msg,Throwable throwable). * * @param msg The message will pass the specified constructor * @param throwable The cause will pass the specified constructor * @return An instance of the ExceptionManager created by invoking the constructor * ExceptionManager(String msg, Throwable throwable) */ public static ExceptionManager wrap(String msg,Throwable throwable){ return new ExceptionManager(msg,throwable); } /** * Constructs a new instance with the specified detail message. The concrete handler * is its super class. This constructor always used to construct a custom exception * not wrapping the exist exception. * * @param msg the detail message which is the part of the information will be * shown. */ public ExceptionManager(String msg){ super(msg); } /** * Constructs a new instance with the specified detail cause. The concrete handler * is its super class. This constructor always used to wrap an exist exception. * * @param throwable the cause which has been caught. It's detail message and * stacktrace are the parts the information will be shown. */ public ExceptionManager(Throwable throwable){ super(throwable); } /** * Constructs a new instance with the specified detail message and cause. The * concrete handler is its super class. This constructor always used to construct * an exception wrapping the exist exception but requires a custom message. * * @param msg the detail message which is the part of the information will * be shown. * @param throwable the cause which has been caught. It's stacktrace is the parts * the information will be shown. */ public ExceptionManager(String msg,Throwable throwable){ super(msg,throwable); } /** * Show the information with everything is default. */ public synchronized void alert(){ alert((Component)null); } /** * Show the information in a dialog with the specified title * "ThrowableManager Alerter". The dialog belongs to the given component which * default is the screen. * * @param parent The component cause the exception. */ public synchronized void alert(Component parent){ alert(parent,"ThrowableManager Alerter"); } /** * Show the information in a dialog with the specified title. * * @param title The title of the dialog. */ public synchronized void alert(String title){ alert((Component)null,title); } /** * Show the information in a dialog which has the specified title and belongs to the * specified component. * * @param parent The component cause the exception. * @param title The title of the dialog. */ @SuppressWarnings("static-access") public synchronized void alert(Component parent,String title){ StringBuilder errorMessage=new StringBuilder(); errorMessage.append(this.toString()); for (StackTraceElement st:((this.getCause()==null)?this:this.getCause()).getStackTrace()){ errorMessage.append("\n\t at "); errorMessage.append(st.toString()); } alerter.showMessageDialog(parent, errorMessage, title ,JOptionPane.ERROR_MESSAGE); System.err.println(errorMessage); } }


【文件预览】:
ExceptionManager.java

网友评论

  • 谢谢分享,不错,浅显易懂!