java异常函数_常用的java函数(六)异常处理类

/**

* (#)ThrowableManager.java 1.0 Apr 10, 2008

*

* Copyright 2007- wargrey , Inc. All rights are reserved.

*/

package net.wargrey.application;

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 Exception {

/**

* 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.

*/

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);

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2008-08-04 18:27

浏览 1268

评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值