目录
异常概念
广义上的异常:运行中一切不正常的情况
Error:jvm虚拟机内部错误,内存不够了...自身无法解决的问题
Exception:狭义异常 程序运行中出现的问题 但是可以通过程序异常机制解决 继续向后进行(学习的内容)(比如数组越界,数字格式化,空指针异常,类型转换异常,算数异常之类的问题)
异常体系
Throwable 最顶级的类(所有的异常)
分两类:1Error
2Exception(分两类 1运行异常(RuntimeException) 和 2编译异常)
为什么会有这么多异常类?
java只是把语法能够出现的某些问题对应的封装成了一个类.
异常处理*
try{异常的代码块} catch(异常类型){如果异常的话 给提示 不能改变错误 } 可以一个try 对应多个catch(Exception e)
e.getMessage() //获取异常的原因
e.printStackTrace() //打印异常信息到控制台 开发调试使用
finally关键字 {} 是一个代码块它一定会执行
不能单独去使用,必须结合try或者try catch
写在try或者try catch 后面 finally{} 一定会被执行 要在{}里面写逻辑语句
抛异常之前要finally 记住!!!
throws和throw
throws: 方法后加throws 使用声明 表示不处理异常
(编译期异常 必须处理 这个异常
运行期异常 可以处理 也可以不处理)
不能抛出比最初定义的异常类还大的 只能相等和小
throw:写在方法体中 用来抛出一个异常对象的
throw new异常类()
但是 一般方法声明用 throws
自定义异常
(自定义一个异常类)
继承 Exception
处理了异常程序就会继续执行 这就是 try{} catch(异常类){} 的作用