java自定义异常类
2011-12-13 11:02
127 查看
自定义异常 : 步骤:
一:创建一个类继承于Throwable或其子类;
二:添加构造方法;
三:在一个方法中使用throw抛出异常
四:在另一个方法中捕获并处理异常
示例:
一、继承Exception类
Java代码
public class MyFirstException extends Exception {
public MyFirstException() {
super();
}
public MyFirstException(String msg) {
super(msg);
}
public MyFirstException(String msg, Throwable cause) {
super(msg, cause);
}
public MyFirstException(Throwable cause) {
super(cause);
}
//自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,
//根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。
}
二、 继承Throwable 类
Java代码
public class MySecondException extends Throwable {
public MySecondException() {
super();
}
public MySecondException(String msg) {
super(msg);
}
public MySecondException(String msg, Throwable cause) {
super(msg, cause);
}
public MySecondException(Throwable cause) {
super(cause);
}
}
三、测试
Java代码
/**
* 自定义异常类的使用
* @author new
*
*/
public class TestMyException {
public static void firstException() throws MyFirstException{
throw new MyFirstException("\"firstException()\" method occurs an exception!");
}
public static void secondException() throws MySecondException{
throw new MySecondException("\"secondException()\" method occurs an exception!");
}
public static void main(String[] args) {
try {
TestMyException.firstException();
TestMyException.secondException();
} catch (MyFirstException e1){
System.out.println("Exception: " + e1.getMessage());
e1.printStackTrace();
} catch (MySecondException e2){
System.out.println("Exception: " + e2.getMessage());
e2.printStackTrace();
}
//当一个try块后面跟着多个catch块时,如果发生的异常匹配第一个catch块的参数,便将异常处理权利交给第一个catch块。
//如果发生的异常与第一个catch块不匹配,便看是否与第二个catch块匹配,依次下去,如果到最后依然无法匹配该异常,
//便需要在方法声明中添加一条throw语句,将该异常抛出。
//因此,在有多个catch块,而且每次处理的异常类型具有继承关系时,应该首先catch子类异常,再catch父类异常。
//比如,如果MySecondException继承MyFirstException,那么最好将catch(MySecondException e2)放在前面
//把catch (MyFirstException e1)放在后面。
}
一:创建一个类继承于Throwable或其子类;
二:添加构造方法;
三:在一个方法中使用throw抛出异常
四:在另一个方法中捕获并处理异常
示例:
一、继承Exception类
Java代码
public class MyFirstException extends Exception {
public MyFirstException() {
super();
}
public MyFirstException(String msg) {
super(msg);
}
public MyFirstException(String msg, Throwable cause) {
super(msg, cause);
}
public MyFirstException(Throwable cause) {
super(cause);
}
//自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,
//根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。
}
二、 继承Throwable 类
Java代码
public class MySecondException extends Throwable {
public MySecondException() {
super();
}
public MySecondException(String msg) {
super(msg);
}
public MySecondException(String msg, Throwable cause) {
super(msg, cause);
}
public MySecondException(Throwable cause) {
super(cause);
}
}
三、测试
Java代码
/**
* 自定义异常类的使用
* @author new
*
*/
public class TestMyException {
public static void firstException() throws MyFirstException{
throw new MyFirstException("\"firstException()\" method occurs an exception!");
}
public static void secondException() throws MySecondException{
throw new MySecondException("\"secondException()\" method occurs an exception!");
}
public static void main(String[] args) {
try {
TestMyException.firstException();
TestMyException.secondException();
} catch (MyFirstException e1){
System.out.println("Exception: " + e1.getMessage());
e1.printStackTrace();
} catch (MySecondException e2){
System.out.println("Exception: " + e2.getMessage());
e2.printStackTrace();
}
//当一个try块后面跟着多个catch块时,如果发生的异常匹配第一个catch块的参数,便将异常处理权利交给第一个catch块。
//如果发生的异常与第一个catch块不匹配,便看是否与第二个catch块匹配,依次下去,如果到最后依然无法匹配该异常,
//便需要在方法声明中添加一条throw语句,将该异常抛出。
//因此,在有多个catch块,而且每次处理的异常类型具有继承关系时,应该首先catch子类异常,再catch父类异常。
//比如,如果MySecondException继承MyFirstException,那么最好将catch(MySecondException e2)放在前面
//把catch (MyFirstException e1)放在后面。
}
相关文章推荐
- java初学者实践教程21-自定义异常类
- Java -- 异常的捕获及处理 -- 自定义异常类
- Java异常类和自定义异常类
- 【JAVA 课后习题 12.5】 + 自定义异常类
- 如何编写和应用Java的自定义异常类 推荐
- java自定义异常类
- java自定义异常类
- 黑马程序员-----java自定义异常类
- java自定义异常类
- [学习笔记]Thinking in Java (the 2nd edition) Study Note (1)
- JAVA面试题大集合
- JAVA 和.NET在安全功能的比较
- java中static的用法(一)静态成员变量
- WEB开发中的JAVA字符编码经验总结
- java上传下载ftp服务器的代码!!
- Java性能
- 初学者入门 JAVA 的 XML 编程实例解析
- Java and XML [ILLUSTRATED]
- java的特殊符号
- 细说Java的静态数据 推荐