一、实验目的
1、掌握常见异常类的使用环境;
2、掌握异常处理的两种方法;
3、掌握自定义异常类的方法。
二、实验内容
1、在程序中处理常见异常。
2、自定义异常,并在程序中处理异常对象。
三、实验步骤
1、输入三角形三条边长,求三角形面积。处理可能发生的异常。
class TriangleSidesException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
public TriangleSidesException() {
System.out.println("三个边长不能构成三角形");
}
}
public class Triangle {
private double a;
private double b;
private double c;
public Triangle(double a,double b,double c){
this.a=a;
this.b=b;
this.c=c;
}
public double getArea() throws Exception {
if(a+b<=c||a+c<=b||b+c<=a){
throw new TriangleSidesException();
}
//海伦公式
double p=(a+b+c)/2;
double s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}
public static void main(String[] args){
double x=Double.parseDouble(args[0]);
double y=Double.parseDouble(args[1]);
double z=Double.parseDouble(args[2]);
Triangle t1=new Triangle(x, y, z);
try {
System.out.println(t1.getArea());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2、定义Circle类,包含成员变量半径r和计算面积的方法getArea()。自定义异常类,当半径小于0的时候抛出异常。
class CException extends Exception{
/**
*
*/
private static final long serialVersionUID = 1L;
public CException(){
System.out.println("半径不能小于0");
}
}
public class Circle {
private double r;
public Circle(double r){
this.r=r;
}
public double getArea()throws Exception{
if(r<=0){
throw new CException();}
double s=3.14*r*r;
return s;
}
public static void main(String [] args){
double x=Double.parseDouble(args[0]);
Circle a1=new Circle(x);
try{
System.out.println("该圆的面积为:"+a1.getArea());
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
}
参考资料来自:NT软件园