要求:完成一个 java application应用程序,完成一个计算绝对值表达式 |a-b|的功能。要求当b比a大时人为抛出一个自定义异常,在计算绝对值时通过异常捕捉机制完成此绝对值表达式的计算。
1.知识点与思路
此要求中的绝对值异常需要自定义,因此可以参考Java中SUN公司定义好的异常类型代码稍作修改。这里定义了两个类,一个类AbsoluteException用于继承父类Exception,进而可以后续上抛异常后直接继承父类方法。另一个类MyException中主要用于定义符合处理绝对值异常的具体方法。自定义异常完成后,即可以在程序主入口调用自定义异常类,完成绝对值计算、异常捕捉和计算结果的输出。
2.代码
import java
.util
.Scanner
;
public class ExceptionWork2 {
public static void main(String
[] args
) {
Scanner s
= new Scanner(System
.in
);
System
.out
.println("请输入a的值:");
int a
= s
.nextInt();
System
.out
.println("请输入b的值:");
int b
= s
.nextInt();
MyException me
= new MyException();
try {
int c
= me
.Absolute(a
,b
);
System
.out
.println("计算绝对值|a-b|为:"+c
);
}catch (Exception e
){
e
.printStackTrace();
int c
= b
- a
;
System
.out
.println("计算绝对值|a-b|为:"+c
);
}
}
}
class AbsoluteException extends Exception{
public AbsoluteException(String msg
){
super(msg
);
}
}
class MyException{
public int Absolute(int a
,int b
) throws AbsoluteException
{
int c
;
if(a
>b
){
c
= a
- b
;
}else{
throw new AbsoluteException("b>a时,抛出一个异常");
}
return c
;
}
}
3.运行结果
从代码运行结果可以看出,当绝对值计算中为正数时可以正常输出绝对值;当绝对值计算中为负数时,程序可以在控制台中抛出一个异常提示,同时正确输出绝对值。