1.什么是异常?
异常分为两种:
一种是编译时异常,意思就是编译都没有通过俗称为错误(erro)
一种是运行时异常,就是常见的异常(Exception)
2.异常有哪些关键字呢
try:监控可能会发生异常的代码。
catch:用来捕获异常抛出异常处理异常。
finally:这个是不管程序是否发生异常都会运行的,一般用来释放资源。
throw:监控代码try发生异常立即抛出。
throws:发生异常通知它的调用者。
3.异常产生的原理
当异常发生时,jvm会立即创建一个异常类的对象,并将此对象发生的所有信息封装给此对象,将此对象以依赖注入的方式提供给调用者。
4.throw与throws的区别
1.使用的位置不同 一个在方内部,一个在方法声明处使用。 2.throw抛出一个异常对象。throws⽤来声明⼀个⽅法可能产⽣的所有异常,不做任何处理⽽是将异常往上传,谁调⽤我我就抛给谁 。
5.常见的异常有哪些呢
1.空指针异常(就是用了空对象实例方法)
2.数学运算异常(除数不能为零)
3.数组存储异常(当试图将类型为不兼容类型的对象存入一个Object[]数组时将引发异常)
4.内存不足错误(当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误)
5.未找到类定义错误(找不到该类的定义时抛出该错误)
6.下标越界异常
7.方法不存在异常(调用不存在的方法发生的异常)
8.没有访问权限异常(当程序调用一个类方法但是没有权限就会抛出异常,列如:Package)
9.字符串转换为数字异常(当将一个String类型转换为数值而这个String不满足数字类型的要求抛出的异常)
10.文件未找到异常(当程序打开一个不存在的文件读取的时候抛出的异常)