深入java 自定义异常以及常用
来源:互联网 发布:java编写贪吃蛇教程 编辑:程序博客网 时间:2024/05/23 16:35
上一篇文章总结了java的异常用法,常见得java异常以及例子说明。这一篇文章我们继续深入,了解自定义java异常以及常用的异常记录工具。更多的源代码请访问我的github:https://github.com/yangsheng20080808/deepIntoJava
原创不易,转载请声明出处。
本文分为2大部分
- 为什么没必要自定义编译异常CheckedException
- 自定义java异常
- 常用的异常记录工具
为什么没必要自定义编译异常CheckedException
当我们开始熟练的开始使用java异常的时候,其实这个时候,我们还可以定义自己的异常,我们最好只定义继承Exception和RuntimeException(待会跟大家说一下为什么也不需要去继承RuntimeException),当然,编译异常你也可以继承,但是你继承了编译异常也没有用呀,因为编译异常,是我们抛出的父类对象,捕捉的时候只会匹配他和他的父类,不会匹配他的子类:
举例说明吧:
大家应该看得很清楚,MyException(子)是FileNotFoundException(父)的子类,但是我们在filter = new FileReader(path);的时候,抛出的是MyException的父类FileNotFoundException的对象,大家应该都知道强制向下造型是有风险的,当然,JVM这里当然也不可能让你向下造型去匹配。
我们添加获取的目标:
运行结果:
我们只匹配上了我们的父类对象。而没有匹配上我们的MyException。
自定义java异常
为什么要自定义java异常
我觉得是从程序的健壮性和友好性出发的,我们自定义的异常,可以在程序运行的时候给我们用户更好的异常提示,而且这些异常是符合我们自己定义的场景。
直接举例说明(我觉得真的有用的继承是Exception和RuntimeException:但是一般RuntimeException是程序在运行的时候:要么是系统异常。无法处理。例如网络问题。我们根本没有办法处理。那有什么必要去处理呢?!!!):
最后:我们只有Exception和Throwable是有必要去复写的。
运行结果:
常用的日志记录工具
我们可以使用一些第三方的日志工具去记录程序中出现的异常:
推荐大家几个工具,具体怎么使用,以后再单独写一篇文章总结:
log4j,log4j2
- 深入java 自定义异常以及常用
- java自定义异常以及异常的使用
- java中异常抛出以及自定义异常
- java异常解析以及自定义异常实例
- java自定义异常以及异常类
- java常见异常笔试题以及自定义异常
- 黑马程序员 Java基础 处理异常信息以及自定义异常
- Java 实现自定义异常 以及如何使用该异常
- 深入理解java注解(Annotation)以及 自定义注解入门
- 深入理解java注解(Annotation)以及 自定义注解入门
- java自定义异常以及throws和throw的区别
- java异常的深入学习以及异常处理时一些内存问题
- 深入java异常机制
- 深入java异常机制
- java异常处理深入
- 深入java--异常
- 深入理解Java异常
- 深入java 异常
- Android开发之远程服务[Remote:]通信
- Docker概念
- MYSQL 主从配置
- call与apply
- Java RMI之HelloWorld篇
- 深入java 自定义异常以及常用
- REM转换脚本
- Struts2之form标签的action及namespace属性的组合使用
- hibernate单表,一对多,多对多注解详解
- JSP的四种作用域
- JSTL中foreach标签结合select标签使用
- 二叉树前序、中序、后序遍历非递归写法的透彻解析
- iOS事件响应链详解(The Responder Chain)
- 括号画家