本文小编为大家详细介绍“Java中关于异常的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java中关于异常的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
3W原则
哪都有的3W原则,JAVA异常也可以总结3W:what、where、why
what对应异常类型:回答了什么被抛出
where对应异常堆栈跟踪:回答了在哪抛出
why对应异常信息:回答了为什么被抛出
异常体系

上图我们看出Throwable是异常的***类,Error和Exception是他的子类。
Exception又分RuntimeException和非RuntimeException子类。
Error与Exception区别
我们看一下他们的概念定义:
(1) Error:程序无法处理的系统错误,编译器不做检查。
(2) Exception:程序可以处理的异常,捕获后可处理。
RuntimeException与否区别

上图中Exception有两种类型的异常,我们来看一下。
(1) RuntimeException:不可预知的,程序应当自行避免
(2) 非RuntimeException:可预知的,编译器可检查的异常
责任归属
我们从责任角度看:
上面代码直观一点:

们看到Error和RuntimeException编译器是不检查的,而CheckedExcepton异常编译器是检查的,也就是我们程序员是必须要捕获处理的。那怎么处理呢?
(1) try-catch方式

用try-catch方式捕获这个异常,可以在catch代码段进行异常逻辑处理,这个就按照实际业务而定。如上图代码是FileNotFound异常,根据这个类型我们就知道是文件句柄不存在,那我们应该做哪些处理。如:提示一下用户该文件不存在
(2) 上抛异常方式
在复杂的业务中,我们的程序员自己写的模块,很有可能被其他程序员写的模块进行引用,为了能够让其他程序员知道我们模块的异常,并要他们要进行处理,我们就可以采用上抛异常方式

我们看一下上层调用的处理

我们看到上抛异常,是需要调用方进行处理的。那处理的方式是什么呢?其实就是上面讲的try-catch或继续上抛。
常见的Error和Exception
(1) RuntimeException
NullPointerException - 空指针引用异常
ClassCastException - 类型强制转换异常
IllegalArgumentException - 传递非法参数异常
IndexOutOfBoundsException - 下标越界异常
NumberFormatException - 数字格式异常
(2) 非RuntimeException
(3) Error
NoClassDefFoundError - 找不到class定义的异常
StackOverflowError - 深递归导致栈被耗尽抛出的异常
OutOfMemoryError - 内存溢出异常
读到这里,这篇“Java中关于异常的知识点有哪些”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注天达云行业资讯频道。