作业要求如下:
(1)编写一个类TestAllException,其中包含主方法main和计算矩形面积的方法calculateArea。
(2)在main方法中,从键盘上接收矩形的长和宽,调用方法calculateArea计算并且返回矩形的面积,之后在main方法中输出矩形的面积。
(3)思考一下,在这个任务中,有什么异常是系统无法给定,需要自定义的?请自定义这种异常类,并且在方法calculateArea中声明和抛出。
(4)在main方法中,使用try-catch结构捕获所有可能的异常。
可以参考如下程序框架:
//包引用语句
//自定义异常类的声明
public class TestAllException
{
public static double calculateArea(double a, double b) throws ...(...表示自定义异常类)
{
//判断什么时候声明异常
//计算并且返回矩形面积
}
public static void main(String[] args)
{
//从键盘上接收矩形的长和宽
//调用 方法calculateArea
//输出矩形面积
//对于上述操作,注意捕获可能出现的异常
}
}
/*********************************************/
答案
import java.util.Scanner;
public class TestAllException {
public static double calculateArea(double a, double b) throws TriangleMinusLengthException
{
if(a<0||b<0)
throw new TriangleMinusLengthException("负边长异常");//判断什么时候声明异常
return a*b; //计算并且返回矩形面积
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double a,b;
a = sc.nextDouble();
b = sc.nextDouble();
try {
double c = calculateArea(a,b);
System.out.println(c);
}
catch(TriangleMinusLengthException t) {System.out.println("输入的值不能为复数");}
}
}
class TriangleMinusLengthException extends Exception{
String name;
public TriangleMinusLengthException(String str) {
name = str;
}
@Override
public String toString() {
return name;
}
}
```bash
在这里插入代码片