异常Throwable
异常就是异于常态,和正常状态不一样,有错误出现,防止当前方法或作用域的情况称之为异常
异常的分类:
异常分为Error错误和Exception异常。
Error错误程序无法处理的错误,一般表示代码运行时jvm出现了问题,
- 虚拟机运行错误
- 类定义错误
- 内存耗尽错误
此类错误会发生错误时,JVM将终止进程,非代码性错误,因此发生错误时,应该不应该去处理改异常
Exception 异常,是程序可以捕获处理的异常
运行时错误RuntimeException:运行期间可能出现的错误。编译器不会检查此异常,且不会要求处理异常
- 空指针异常 NullPointerException
- 下标越界 IndexOutOfBoundsException
- 数字格式异常 NumberFormatException
- 类转换异常 ClassCastException
- 算术异常 ArlthmeticExcption
- 操作错误异常 UnsupportedOperationException
- 数据存储异常 ArrayStoreException6
检查式异常,非运行时错误,
IO异常 IOException
SQL异常 SQLException
文件获取异常 FileNotFoundException
自定义异常
throws和throw的区别
throws:用来声明一个方法可能产生的所有异常,不做任何处理而是将异常往上传,谁调用我我就抛给谁。
用在方法声明后面,跟的是异常类名
可以跟多个异常类名,用逗号隔开
表示抛出异常,由该方法的调用者来处理
throws表示出现异常的一种可能性,并不一定会发生这些异常
throw:则是用来抛出一个具体的异常类型。
用在方法体内,跟的是异常对象名
只能抛出一个异常对象名
表示抛出异常,由方法体内的语句处理
throw则是抛出了异常,执行throw则一定抛出了某种异常