《Java开发实战经典》第七章 异常的捕获及处理

1.异常的基本概念

为了保证程序出现非致命错误后,程序依然可以正常运行,所以需要异常处理机制。

Java的异常处理机制的优点:易于使用、可自行定义异常类、处理抛出的异常同时又不会降低程序运行速度。

2.关于除数不能为零的说明

在计算机的发展中有两大“杀手”。一是断电,一是除数为零。因为除数为零在数学上解是无穷大,对于计算机来说,如果是无穷大,意味着内存将全部被占满。

3.异常信息的输出方式:

A)System.out.println(e)

B)e.printStackTrace() 获取完整异常信息

 

4.异常处理可以使用try...catch处理,也可以用try...catch...finally。在try语句中捕捉异常,在catch中处理异常,finally作为异常的统一出口,不管是否发生异常都要执行此段代码。

5.异常的最大父类是Throwable,其分为Exception和Error两个子类,Exception表示程序处理的异常,Error表示JVM错误,一般不是由程序开发人员处理。

一般开发中是不会直接使用Throwable进行捕获的,另外,对于一个程序,多个异常最好分别捕获,不要直接使用Exception捕获全部异常。

发生异常之后,JVM会产生一个异常类的实例化对象,并匹配相应的catch语句中的异常类型,也可以利用对象的向上转型关系,直接补获Exception。

6.throws用在方法声明处,表示本方法不处理异常,而交给方法的调用处进行处理。

throw表示在方法中手工抛出一个异常。是在代码块中使用的。

public class Point {
    public static int div(int i,int j)throws Exception{
        int temp=0;
        System.out.println("start");
        try{
            temp=i/j;
        }catch (Exception e){
            throw e;
        }finally {
            System.out.println("end");
        }
        return temp;
    }
}
public class Test {
    public static void main(String args[]) {
        try{
            System.out.println(Point.div(10,0));
        }
        catch(Exception e){
            System.out.println("异常产生"+e);
        }
    }
}

可以简化处理,省掉catch和throw的操作

//在实际的开发中,这种异常的处理格式是最为重要的,尤其是当与一些资源进行访问操作的时候
public class Point {
    public static int div(int i,int j)throws Exception{
        int temp=0;
        System.out.println("start");
        try{
            temp=i/j;
        }finally {
            System.out.println("end");
        }
        return temp;
    }
}

只要方法后面带有throws往往都是告诉用户本方法可能产生的异常是什么。 

7.自定义异常类时,只需继承Exception类即可。

8.断言是JDK1.4之后提出的新功能,可用来检测程序执行结果,但开发中不建议使用断言进行检测。虽然断言返回的是boolean值,但其不能作为条件判断语句出现。

9.解释区别:RuntimeException,Exception

1)RuntimeException是Exception的子类;

2)Exception定义了必须处理的异常,RuntimeException定义的异常可以选择性的进行处理;

3)常见的RuntimeException:NumberFormatException,ClassCastException,NullPointerException,

ArithmeticException,ArrayIndexOutOfBoundsException 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值