Java异常处理
1.异常:导致程序中断的一种指令流,一旦产生异常并且没有正常处理的话,那么程序会中断执行;
2.异常处理
try{
//可能出现异常的语句
}[catch(异常对象 对象){
//异常处理
}][finally{
//异常统一出口代码,都会执行
}]
3.所有异常都是Throwable的子类,Throwable有两个子类Error和Exception;
Error和Exception的区别?
Error:是在程序还未执行时出现的错误,一般指的是JVM出错,用户无法处理;
Exception:指的是在程序运行中出现的异常,异常处理都是针对此类型完成的;
在以后工作中,能处理的最大的异常就是Exception;
4.异常处理流程:
1)当程序中产生异常后,由JVM自动根据异常类型实例化一个指定的异常类对象;
5.throws:该关键字告诉用户执行某一个方法中有可能产生哪些异常,常用在方法的声明处;
在调动该方法时必须进行异常处理,主方法也可以加throws异常,主方法之上那么就由JVM进行默认的处理;
throw:人为进行异常的抛出,如出现throw,那么有以下两个选择:
1)方法上使用throws继续抛出;
2)手工使用异常处理;
throw和throws的区别:
1)throw在方法体中使用,表示手工抛出一个异常类对象;
2)throws在方法的声明中使用,表示此方法在调用时必须进行异常处理;
6.runtime异常属于选择性异常 ,在编译时不会出错,但是在执行的时候会出错;
Exception和runtimeException的区别?
runtimeException是Exception的子类;
Exception异常都需要进行强制处理,而runtimeException下的子类在编写代码是异常不需要强制性处理;若不处理交由JVM处理;
7.泛型:类中的属性或者是方法的参数,在类定义的时候不设置具体的类型,只做一个标记,而在类使用的时候才会为其动态的绑定一种数据类型;
通配符?:不能修改数据,但是可以取数据
?extends 类:设置泛型的上线,用在设置类或者方法参数中;
?super 类:设置泛型的下限,用在方法参数中;