转载自:
https://blog.csdn.net/doujinlong1/article/details/80343958
转载自:
https://blog.csdn.net/a499663321/article/details/80614515
Java基础知识——异常Throwable和Exception
Java设置了异常,旨在鼓励将方法中可能出现的异常告知给使用此方法的程序员(你和我!)。当然了,这种方法是比较优雅的,让我们确切的知道是在哪里出了错,并提供了异常捕获。本篇文章主要对Java中的异常进行介绍与区分。
Java中有个java.lang.Throwable类,这个类是Java中所有异常和错误的基类。Throwable下有两个大类那就是异常(Exception)和错误(Error)。
Throwable是Error和Exception的父类,用来定义所有可以作为异常被抛出来的类。
Error和Exception区分:
Error是编译时错误和系统错误,系统错误在除特殊情况下,都不需要你来关心,基本不会出现。而编译时错误,如果你使用了编译器,那么编译器会提示。
Exception则是可以被抛出的基本类型,我们需要主要关心的也是这个类。
Exception又分为RunTimeException和其他Exception。
RunTimeException和其他Exception区分:
其他Exception,受检查异常。可以理解为错误,必须要开发者解决以后才能编译通过,解决的方法有两种,1:throw到上层,2,try-catch处理。
RunTimeException:运行时异常,又称不受检查异常,不受检查!不受检查!!不受检查!!!重要的事情说三遍,因为不受检查,所以在代码中可能会有RunTimeException时Java编译检查时不会告诉你有这个异常,但是在实际运行代码时则会暴露出来,比如经典的1/0,空指针等。如果不处理也会被Java自己处理。
常见的error类
异常类名 |
用途 |
LinkageError |
动态链接失败 |
VirtualMachineError |
虚拟机错误 |
AWTError |
AWT错误 |
常见运行时异常类
异常类名 |
用途 |
ArithmeticException |
数学运算异常,比如除数为零的异常 |
IndexOutOfBoundsException |
下标越界异常,比如集合、数组等 |
ArrayIndexOutOfBoundsException |
访问数组元素的下标越界异常 |
StringIndexOutOfBoundsException |
字符串下标越界异常 |
ClassCaseException |
类强制转换异常 |
NullpointerException |
当程序试图访问一个空数组中的元素,或访问一个空对象中的方法或变量时产生的异常。 |
常用的非运行时异常
异常类名 |
用途 |
ClassNotFoundException |
指定类或接口不存在的异常 |
IllegalAccessException |
非法访问异常 |
Ioexception |
输入输出异常 |
FileNotFoundException |
找不到指定文件的异常 |
ProtocolException |
网络协议异常 |
SocketException |
Socket操作异常 |
MalformedURLException |
统一资源定位符(URL)的格式不正确的异常。 |