java中的异常

异常的概念

当出现程序无法控制的外部环境问题(用户提供的文件不存在、文件内容损坏、网络不可用….)时,Java就会用异常对象来描述。

Java中的两种处理异常的方法

1、在发生异常的地方直接处理。
2、将异常抛给调用者,让调用者处理。

异常的分类

1、检查性异常:java.lang.Exception
此类异常是程序的逻辑并没有任何问题,出现异常的原因是外在的环境条件不满足。
2、运行期异常:java.lang.RuntimeException
此类异常说明程序中存在数组越界等bug,Java编译器强制要求处理这类异常,并且这类异常需要修改序来修改。
3、错误:java.lang.Error
此类异常不多见。可能是由于程序的bug,也可能是源于环境问题(例如:内存耗尽等)。

异常的处理

1、try….catch
程序运行产生异常时,将从异常发生点中断程序并向外抛出异常信息。
2、finally
如果把finally块置于try…catch…语句后,finally块一般都会得到执行,它相当于
一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally
块将马上执行。
3、抛出异常,让调用者去处理这个异常。

finally注:
以下情形,finally块将不会执行:
1、finally块中发生了异常。
2、程序所在线程死亡。
3、在前面的代码中用了System.exit();
4、关闭CPU。

例子:

import java.io.*;
public class Demo_1{
public static void main(String []args){
//try….catch
try{
FileReader fr=new FileReader(“d:\aa.txt”);//d盘中并没有aa这一文件
}catch(Exception e){
e.printStackTrace();
}

//finally,最后一道防线。
try{
                FileReader fr=new FileReader("d:\\aa.txt");//d盘中并没有aa这一文件
            }catch(Exception e){
                        e.printStackTrace();
                    }finally{
                if(fr!=null){
            try{
                fr.close();
            }catch(Exception e1){
                e1.printStackTrace();
            }
        }


    //抛出异常
        Animal f=new Animal();
    f.test1();
}

}
class Animal{
private Cat cat=null;
public Animal()
{
cat=new Cat();
}

public void test1()
{
    System.out.println("111");
    //处理异常
    try{
        son.test2();
    }catch(Exception e){
        System.out.println("Animal");
        e.printStackTrace();
    }
}

}

class Cat{
public void test2() throws Exception
{
//将异常向上抛给了Animal类里面
FileReader fr=new FileReader(“d:\aa.txt”);
System.out.println(“hahaha1”);
}
}
“`

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值