Java自定义异常类

开发 后端
本文主要讲解了关于Java自定义异常类的介绍。

自定义异常:步骤 ­

一:创建一个类继承于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);   
}   
//自定义异常类的主要作用是区分异常发生的位置,当用户遇到异常时,   
//根据异常名就可以知道哪里有异常,根据异常提示信息进行修改。   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.

二、 继承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);   
}   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

三、测试

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)放在后面。   
}  
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.

原文链接:http://www.cnblogs.com/winkey4986/archive/2011/12/13/2285768.html

【编辑推荐】

  1. Java编程:数据的截尾与舍入
  2. Java版A星算法实现步骤
  3. Tomcat运行Java Web内存溢出总结
  4. Java NIO如何处理慢速的连接
  5. Java NIO2 AIO开发核心流程
责任编辑:林师授 来源: winkey的博客
相关推荐

2009-08-03 16:37:49

C#异常类

2025-01-10 09:28:25

2021-06-17 06:52:37

C#自定义异常

2023-10-19 09:14:34

Java开发

2009-08-05 18:01:20

C#自定义异常处理

2023-11-22 09:45:44

2015-02-12 15:33:43

微信SDK

2021-06-21 06:32:04

Python异常传递s自定义异常

2024-11-27 16:38:07

2024-08-02 10:21:32

C#Exception类自定义异常

2015-02-12 15:38:26

微信SDK

2022-08-08 08:17:43

类隔离加载器自定义类

2016-11-16 21:55:55

源码分析自定义view androi

2011-06-23 10:49:13

Qt 自定义信号

2015-07-29 10:31:16

Java缓存算法

2016-12-26 15:25:59

Android自定义View

2021-01-06 05:25:56

项目Springboot应用

2010-12-24 15:38:53

C#单例模式

2023-05-30 07:56:23

代码软件开发

2010-02-03 16:56:20

C++自定义类
点赞
收藏

51CTO技术栈公众号