Java 异常的捕获及处理 要点 习题

简介: 下面对异常的捕获及处理做一总结:

一、要点


下面对异常的捕获及处理做一总结:


1、异常是导致程序中断运行的一种指令流,当异常发生时,如果没有进行良好的处理,则程序将会中断执行。


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


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


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


5、throws用在方法声明处,表示本方法不处理异常。


6、throw表示在方法中手工抛出一个异常。


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


8、断言是JDK 1.4后提供的新功能,可以用来检测程序的执行结果,但开发中并不提倡使用断言进行检测。


9、最后

(1)通过继承java.lang.Exception类声明自己的异常类。

(2)在方法适当的位置生成自定义异常的实例,并用throw语句抛出。

(3)在方法的声明部分用throws语句声明该方法可能抛出的异常。


二、习题


题目:编写应用程序,从命令行输入两个小数参数,求它们的商。要求程序中捕获 NumberFormatException异常和ArithmeticException异常。


分析:ArithmeticException 算数异常:判断除数是否为0; NumberFormatException 数字格式异常:判读输入的数字是否是数字


代码如下:


import java.util.Scanner;
public class Demo {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        while(true){
            try{
                System.out.println("输入除数");
                float f1 = Float.parseFloat(s.nextLine());
                System.out.println("输入被除数");
                float f2 = Float.parseFloat(s.nextLine());
                if(f2==0){
                    throw new ArithmeticException("捕获到除0异常~~!!");//手动抛出除零异常
                }
                float result = f1/ f2;
                System.out.println("计算结果:" + f1 + "/" + f2 + "=" + result);
                break;//如果能正常运行到这里,说明前面的输入都是正确的,所以可以跳出循环了
            }catch(NumberFormatException e1){//捕获数字格式异常
                System.out.println("捕获到数字格式异常");
            }catch (ArithmeticException e2) {//捕获到除零异常
                System.out.println(e2.getMessage());
            }
        }
    }
}


运行结果:

输入除数
4
输入被除数
0
捕获到除0异常~~!!
输入除数
2
输入被除数
a
捕获到数字格式异常
输入除数
6
输入被除数
9
计算结果:6.0/9.0=0.6666667


目录
相关文章
|
1月前
|
Java
Java中的异常链:从根源到解决方案
Java中的异常链:从根源到解决方案
37 0
|
1月前
|
存储 监控 Java
Java认识异常(超级详细)
Java认识异常(超级详细)
|
3月前
|
Java 程序员 数据库连接
JAVA中的异常
Throwable Error Exception 编译时异常 运行时异常 异常的处理 try-catch捕获并处理 finally throw throws 自定义异常类
28 0
|
1月前
|
Java UED
Java中的异常处理:捕获、声明与抛出
Java中的异常处理:捕获、声明与抛出
56 0
|
1天前
|
存储 Java 程序员
JavaSE&Java的异常
JavaSE&Java的异常
|
17天前
|
Java
Java中的异常类总结
Java中的异常类总结
|
1月前
|
SQL Java
java中的异常
java中的异常
10 1
|
1月前
|
Java 程序员 编译器
Java中异常
Java中异常
12 0
|
1月前
|
Java 程序员 编译器
Java中的异常
Java中的异常
9 0
|
1月前
|
Java
Java异常的抛出
Java异常的抛出
8 0