异常

try:预判,抛出异常。
catch:捕获异常并处理。
finally:不论有无异常都能执行。
(try后边至少接catch、finally其中的一个。)
try,catch,finally都是可嵌套的。
throw:手动引发异常。
throws:声明方法或定义任何被调用异常。

产生错误原因:
输入错误、内存不足、代码错误。

异常分类:
1.Error(错误):是内部、资源耗尽出现的错误,不指望用户处理。
2.Exception(异常):1)runtimeException:运行错误,设计有问题。2)非runtimeException:环境因素出差错。

获取异常信息:
即try与catch的应用。当语句中有return,finally依旧执行,除非运行System.exit(0);这个语句类似于关机键,慎用。
(Exception e)捕获所有异常。

异常声明:
方法不处理产生的异常,而是向上传递,谁调用谁处理。当异常被抛出,但没被捕获,异常就会被虚拟机处理,此时需要用throw进行声明。(在main方法中catch。比如catch{e.getMessage};)

手动抛出异常:throw exception;exception参数表示异常对象是throwable子类,并且只能是一个。

异常链:两个及以上的异常出现在同一程序并且嵌套抛出。

手动定义异常:
1.继承Throwable。
2.继承Exception。(常用方法) 可在API中查找:Java.lang->异常->Exception。
用法:class 类名(异常名称) extends Exception{};

(捕获异常的其中一个语句:toString,得到异常所在包+类+异常信息)