Java异常捕捉机制练习2

    科技2024-04-21  10

    要求:完成一个 java application应用程序,完成一个计算绝对值表达式 |a-b|的功能。要求当b比a大时人为抛出一个自定义异常,在计算绝对值时通过异常捕捉机制完成此绝对值表达式的计算。

    1.知识点与思路

    此要求中的绝对值异常需要自定义,因此可以参考Java中SUN公司定义好的异常类型代码稍作修改。这里定义了两个类,一个类AbsoluteException用于继承父类Exception,进而可以后续上抛异常后直接继承父类方法。另一个类MyException中主要用于定义符合处理绝对值异常的具体方法。自定义异常完成后,即可以在程序主入口调用自定义异常类,完成绝对值计算、异常捕捉和计算结果的输出。

    2.代码

    import java.util.Scanner; /* 完成一个 java application应用程序,完成一个计算绝对值表达式 |a-b|的功能。 要求当b比a大时人为抛出一个自定义异常,在计算绝对值时通过异常捕捉机制完成此绝对值表达式的计算。 */ public class ExceptionWork2 {//类名 public static void main(String[] args) {//主入口 Scanner s = new Scanner(System.in);//接收键盘输入 System.out.println("请输入a的值:"); int a = s.nextInt();//读取输入a的int值 System.out.println("请输入b的值:"); int b = s.nextInt();//读取输入b的int值 MyException me = new MyException();//创建自定义异常MyException对象 //捕捉异常 try {//当a>b即异常不存在时 int c = me.Absolute(a,b);//调用自定义异常定义c System.out.println("计算绝对值|a-b|为:"+c); }catch (Exception e){//当a<b异常存在时 e.printStackTrace();//在控制台打印输出异常 int c = b - a;//定义c System.out.println("计算绝对值|a-b|为:"+c); } } } //自定义异常类型AbsoluteException,继承父类Exception(Throwable类下可处理的异常Exception) class AbsoluteException extends Exception{ public AbsoluteException(String msg){ super(msg);//继承父类构造方法 } } //自定义异常类型MyException用于抛出异常 class MyException{ public int Absolute(int a,int b) throws AbsoluteException {//定义Absolute方法用于处理异常,并向上AbsoluteException抛出异常 int c ; if(a>b){//当a>b时,正常运算 c = a - b; }else{//当a<b时,抛出异常 throw new AbsoluteException("b>a时,抛出一个异常"); } return c;//返回c } }

    3.运行结果

    从代码运行结果可以看出,当绝对值计算中为正数时可以正常输出绝对值;当绝对值计算中为负数时,程序可以在控制台中抛出一个异常提示,同时正确输出绝对值。

    Processed: 0.024, SQL: 8