异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。
Java程序运行过程中所发生的异常事件可分为两类:
一、Error: 由jvm生成并抛出,程序中不作处理,如:JVM系统内部错误、资源耗尽等严重情况(无能为力)
二、Exception: 所有异常类的父类(能够处理的)
① RuntimeException:一些经常出现的错误,可catch可不catch;编程导致的错误,程序员的错误(逻辑上的错误)
比如:错误的类型转换;数组访问越界;空指针异常
②非运行时Exception
IO异常
其他。。。
理解:
一、如果出现RuntimeException,就一定是程序员的错误
可以成为异常的第二种分类:
一、未检查异常(unchecked)
包括:error的子类异常 或 RuntimeRxception
特点:不能由编译器检查;可以通过编程避免
二、检查异常(checked)
编译时检查,提高了程序的安全性
异常过程:
抛:自动抛出,手动抛出:找到类,声明对象,thow抛出对象
抓:抓住之后有两种处理方式:以下:
异常处理:
一、在try-catch中:(处理)
getMessage():得到异常的详细信息字符串
printStackTrace():输出异常的跟踪栈信息,常用于调试
1.如果异常被处理了,那么其后面的代码继续执行
· 2.那finnally又有何用??因为在catch中也可能出现错误,此时finally中的语句继续执行
二、在thow中:一旦抛出后面的代码不执行(抛出)
①抛出已知的异常:如方法定义中抛出的异常
②代码中手动抛出异常
//抛出异常
public void Metho1(int i) throws Exception{
if(i == 0)
throw new Exception();
}**
自定义异常:
继承Exception
有两个构造方法:
无参的
有string参数的:字符串为描述异常的信息
方法重写中的异常类:
重写方法需要抛出原方法抛出*异常类型一致的类(相同的类或者子类)*或者不抛出异常