自定义的异常处理
来源:互联网 发布:网络消费者投诉来分期 编辑:程序博客网 时间:2024/05/16 01:37
1、讲解
因为项目中会出现特有的问题,而这些问题并未被Java所描述并封装对象。或者说,一些在项目需求中是异常,但是对于程序本身并不是异常的,Java自带的Exception类不会对其进行处理,那么就需要我们自己对原有的Exception类进行扩充,成为自定义的异常处理类
异常Exception的父级就是Throwable类了,除了Exception类外,Throwable还有一个子类Error 。注意异常,与错误的区别
编写自己的异常类时需要记住下面的几点。
- 所有异常都必须是 Throwable 的子类。
- 如果希望写一个检查性异常类,则需要继承 Exception 类。
- 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。
2、使用:
可以像下面这样定义自己的异常类:
classMyExceptionextendsException{}
继承Exception原因:
异常体系有一个特点:因为异常类和异常对象都被抛出。
他们都具备可抛性。这个可抛性是Throwable这个体系中独有特点。只有这个体系中的类和对象才可以被throws和throw操作。
throws和throw的区别
throws使用在函数上。
throw使用在函数内。
throws后面跟的异常类。可以跟多个。用逗号隔开。
throw后跟的是异常对象。
所以若要写需要有抛出异常的方法时:
当在函数内部出现了throw抛出异常对象,那么就必须要给对应的处理动作。
要么在内部try catch处理。
要么在函数上声明让调用者处理。(就是在函数声明的地方加上throws)
1、例如加函数声明: public static void a() throws MyException { //方法内容 。。。。。 throw new MyException(); }
注意函数声明处要声明throws MyException,然后函数内部为throw。
2、例如try-catch:
try { //函数内容 ...... throw new MyException("Originated in b()"); } catch(MyException e) { e.toString(); }
3、写法:
发现打印的结果中只有异常的名称,却没有异常的信息。
因为自定义的异常并未定义信息。
如何定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息传递给父类通过super语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
这部分就是要在自定义异常类中写明。可以写各种各样的异常处理方法,带各种参数的,比如带有String message的,带错误码的等等
// 最基本的一个处理public MyException(String message) { super(message); }//带有起因的处理 public MyException(String message, Throwable cause) { super(message, cause); }
还可以继续写更详细的异常处理函数,super函数自身可以带string,cause参数,如果想要加更多的信息需要自己写函数加进去
- 自定义的异常处理
- WCF的自定义异常处理
- springmvc的自定义异常处理
- 用户自定义的异常处理
- struts2的异常处理已经自定义异常
- 自定义异常类(SpringMVC的异常处理)
- 异常处理+异常+处理异常+自定义异常
- 自定义异常处理的功能实现
- 自定义异常处理的功能实现
- 事务对于自定义异常的处理
- 注册自定义的异常处理函数
- 自定义Application的未捕获异常处理
- 自定义SimpleMappingExceptionResolver实现个性化的异常处理
- 自定义dialog的异常情况处理
- Java异常处理-----自定义异常
- Java异常处理--自定义异常
- Delphi 中自定义异常及异常处理的一般方法
- php异常处理—创建自定义的异常处理器
- Java对对象按照其属性排序的两种方法
- Java中的FileReader与FileReader
- MySQL权限
- Kettle中的传递变量
- windows下常查看端口占用方法总结
- 自定义的异常处理
- CodeForces 773D. Perishable Roads
- 练习
- Ubuntu下Vue.js+webpack的安装
- java的内存机制以及servlet中的线程安全问题简单理解
- POJ 1085 Triangle War 笔记
- 博弈树搜索算法
- servlet配置错误
- OpenGL中的函数