/**
* (#)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 <code>ExceptionManager</code> and its subclasses are a form of
* <code>Exception</code>. It is used to wrap all the <code>Throwable</code> 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 <code>alerter</code> 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 <code>ExceptionManager(String msg)</code>.
*
* @param msg The message will pass the specified constructor
* @return An instance of the ExceptionManager created by invoking the constructor
* <code>ExceptionManager(String msg)</code>.
*/
public static ExceptionManager wrap(String msg){
return new ExceptionManager(msg);
}
/**
* This static method create an instance of the ExceptionManager by invoking the
* constructor <code>ExceptionManager(Throwable throwable)</code>.
*
* @param throwable The cause will pass the specified constructor
* @return An instance of the ExceptionManager created by invoking the constructor
* <code>ExceptionManager(Throwable throwable)</code>.
*/
public static ExceptionManager wrap(Throwable throwable){
return new ExceptionManager(throwable);
}
/**
* This static method create an instance of the ExceptionManager by invoking the
* constructor <code>ExceptionManager(String msg,Throwable throwable)</code>.
*
* @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
* <code>ExceptionManager(String msg, Throwable throwable)</code>
*/
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);
}
}
分享到:
相关推荐
13. **异常处理**:`try-catch-finally`语句块用于捕获和处理程序运行时可能出现的错误。 14. **Lambda表达式**:Java 8引入的新特性,简化了匿名函数的编写。 15. **方法引用来调用函数**:如`Runnable::run`,...
6. **异常处理**:Java的异常处理机制通过`try-catch-finally`语句块实现,`throw`抛出异常,`throws`声明方法可能抛出的异常,`Exception`是所有异常的基类。 7. **集合框架**:Java集合框架包括List、Set和Map...
Java函数式编程是一种编程范式,它强调使用函数作为程序的基本构建块,将计算视为函数的组合,并且尽可能避免改变状态和可变数据。在Java 8及更高版本中,函数式编程得到了官方的大力支持,引入了Lambda表达式、...
本文将对C++和Java两种语言的异常处理机制进行深入的比较和分析,探讨它们的相似之处以及不同之处,以帮助开发者更好地理解和应用这两种语言。 首先,异常处理的基本目的是捕获并处理运行时错误,这些错误通常包括...
JAVA项目中异常处理 JAVA项目中异常处理是指在项目中如何进行异常处理,在最底层将异常往上传递,在页面中集中处理。同时可以自定义错误码。 异常处理机制 在JAVA项目中,异常处理机制是指在程序执行过程中出现...
Java函数式编程是一种将函数作为一等公民的编程范式,它强调使用函数来构造程序,减少副作用,提高代码的可读性和可维护性。在Java 8及更高版本中,函数式编程得到了显著增强,引入了Lambda表达式、函数接口、Stream...
Java中的异常处理是编程中非常重要的一个环节,它主要用于处理程序运行时可能出现的错误和问题。异常处理使得程序更加健壮,能够优雅地处理错误,而不是简单地崩溃。本章内容将围绕Java异常处理机制展开,包括理解...
Java异常处理是编程中至关重要的一个环节,它用于管理和恢复程序在执行过程中可能出现的问题。Java异常分为两大类:错误(Error)和异常(Exception)。错误通常指的是系统级别的问题,如JVM内部错误或资源耗尽,...
5. **异常处理**:Java的异常处理机制是通过try-catch-finally语句块实现的,速查中会包含如何抛出、捕获和处理异常的信息。 6. **多线程**:Thread类和Runnable接口是Java并发编程的基础,函数速查会涵盖start()、...
6. **抛出异常**:Java函数可以通过`throws`关键字声明可能抛出的异常,或者在函数体内用`try-catch`捕获并处理异常。 7. **变量作用域**:函数内的局部变量只能在该函数内部使用,而成员变量(包括静态变量)在...
Java函数涵盖了类库中的各种方法,包括但不限于基础数据类型的操作、集合框架、IO流、多线程、网络编程、反射、异常处理等。例如,`Math`类提供了许多数学运算函数,如`sqrt()`用于计算平方根,`random()`用于生成...
Java函数速查是Java开发者日常工作中不可或缺的参考资料。它涵盖了Java语言中各种核心类库、API及常用函数的使用方法,旨在帮助开发者快速查找和理解函数的用途、参数及返回值,提高编程效率。以下是对Java函数的...
Java多线程异常处理是Java编程中不可或缺的一部分,特别是在并发编程场景下,正确处理异常能够保证程序的稳定性和健壮性。本实验报告主要涵盖了Java异常处理机制、多线程概念与实现,以及多线程同步问题。 首先,...
Java函数速查是一个非常实用的资源,对于程序员来说,它是一个高效的工具,帮助开发者快速查找和理解Java语言中的各种函数用法。这个压缩包可能包含了详细的函数文档、示例代码和可能的分类索引,方便用户按需查找。...
Java中的异常处理通过`try-catch-finally`块来实现。当函数可能会抛出异常时,可以在`try`块中编写可能引发异常的代码,在`catch`块中捕获并处理异常,`finally`块确保无论是否发生异常都会执行的代码: ```java ...
总之,理解和熟练运用Java函数是成为Java开发者的必备技能,它涵盖了广泛的概念和技术,包括但不限于参数传递、返回值、重载、异常处理、异步操作等。不断学习和实践这些知识点将有助于提升你的编程能力。
6. **异常处理**:`Exception`类及其子类用于捕获和处理运行时错误。`try-catch-finally`语句块是处理异常的关键。 7. **多线程**:Java提供了`Thread`类和`Runnable`接口来支持并发编程,函数如`start()`、`sleep...
Java 中的异常可以是函数中的语句执行时引发的,也可以是程序员通过 throw 语句手动抛出的,只要在 Java 程序中产生了异常,就会用一个对应类型的异常对象来封装异常,JRE 就会试图寻找异常处理程序来处理异常。...
Java中的异常处理基于`java.lang.Throwable`类,它有两个重要的子类:`Exception`和`Error`。 1. **`Throwable`**:所有Java异常类的父类。 - **`Exception`**:表示程序可以捕获并处理的异常情况。 - **`Error`*...
异常处理是Java程序健壮性的重要保障。Java提供了try-catch-finally语句来捕获和处理运行时错误。通过使用异常类(如IOException、NullPointerException等)和`throw`关键字,我们可以编写出能够优雅地处理错误的...