java异常的结构
超类:java.lang.throwable
子类:error,exception
exception:RuntimeException,非运行时异常(exception)
error:程序无法处理的异常,内存溢出,线程死掉
-------------------------
运行时和非运行时:
-----------------
运行时:
常见
空指针,数组越界
这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,
程序应该从逻辑角度尽可能避免这类异常的发生。
ArrayStoreException 试图将错误类型的对象存储到一个对象数组时抛出的异常
ClassCastException 试图将对象强制转换为不是实例的子类时,抛出该异常
IllegalArgumentException 抛出的异常表明向方法传递了一个不合法或不正确的参数
IndexOutOfBoundsException 指示某排序索引(例如对数组、字符串或向量的排序)超出范围时抛出
NoSuchElementException 表明枚举中没有更多的元素
NullPointerException 当应用程序试图在需要对象的地方使用 null 时,抛出该异常
推
非运行时:
必须进行处理的异常
IO,SQL,文件找不到,自定义异常
------------------------
五个关键字:
try(试图,尝试)
其中的代码是可能有异常,
catch(接住,捕获)
上面的代码可能出现的异常时什么呢,捕获出来,给大家看,(通过的是控制台,日志,等记录出来,到底是哪里出现的问题)
finally(最后)
好简单啊,就是,没有异常的话也得执行,有异常的话也得执行
throw(抛出,扔)
方法的内部不捕获
是在
这个
throws(抛出)
上抛出去,在方法的括号(参数列表的)后面
---------------------------------
关于异常的变量的作用域:
每一个块中变量的访问的权限是在自己当前的块,要共享的话就在整个结构的外面声明
-------------------------------------
wait。。。