package myclassroomtest;
/*
异常:程序中出现的问题,不处理遇到异常程序结束
在JAVA中对异常进行了分类,封装了异常的类型
信息,出现位置。常见如:被0除,数组越边界
空指针异常等。
父类:Exception
1.Throwable是异常和错误(error)的父类
2.程序员只能处理Exception异常
3.处理方式:抛出 捕获 取决于当前程序是否可以解决
4.捕获处理语法:
try//异常捕捉块
{
}
catch(Exception e)//异常处理块,只有异常发生了才会执行
{
}
...//可以有多个catch语句,注意异常的级别,
//若前面的是父类Exception捕获,后面的
//子类异常catch执行不到
finally //不论异常是否发生 ,都会被执行,可以做一些关闭资源的操作
//exit(0)时执行不到,return也会执行到
{
}
5.抛出
throw 抛出异常对象
throws 声明可能抛出的异常,让调用者去处理
6.为什么不用if判断处理?
这样将逻辑代码块和异常代码块混合在一起,不利于开发和维护
7. 异常分类:
编译异常
运行异常 RuntimeException及其子类 由JVM处理 如:运算异常 空指针异常 数组下标越界
*/
public class MyTest03
{
public static void main(String [] args)
{
try{
System.out.println(5/0);//被0除异常
System.out.println("前面若有异常,我也会挂了,我们是一块的啊!呜呜");
//异常块(仅限同一块中的)中异常后面的语句是不会被执行到的
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println("程序结束!");//除了在catch中exit(0)退出程序外,总会被执行到
}
System.out.println("前面有异常,与我无关!我和它不是一块的!嘿嘿");
}
}
|