一、Java异常处理
1.异常类TriangleException1
package try_a_package;
public class TriangleException1 extends Exception{
private String msg;
TriangleException1()
{
msg="存在小于或等于0的边";
}
@Override
public String toString()
{
return "异常:"+msg;
}
}
2.异常类TriangleException2
package try_a_package;
public class TriangleException2 extends Exception{
String msg;
TriangleException2()
{
msg="异常:三角形存在两边之和大于第三边";
}
public String toString()
{
return msg;
}
}
3.测试类Triangle10_1
package try_a_package;
import java.util.Scanner;
public class Triangle10_1 {
private double a,b,c;
Triangle10_1(double a,double b,double c)
{
this.a=a;
this.b=b;
this.c=c;
}
public double getArea() throws TriangleException1,TriangleException2
{
TriangleException1 t1=new TriangleException1();
TriangleException2 t2=new TriangleException2();
if(a<=0 || b<=0 || c<=0)
{
throw t1;
}
if(a+b<=c || b+c<=a || a+c<=b)
{
throw t2;
}
double p,s;
p=(a+b+c)/2;
s=Math.sqrt(p*(p-a)*(p-b)*(p-c));
return s;
}
public static void main(String[] args)
{
Scanner sc=new Scanner(System.in);
double a,b,c;
System.out.println("输入三边长:");
a=sc.nextDouble();
b=sc.nextDouble();
c=sc.nextDouble();
try
{
Triangle10_1 t1=new Triangle10_1(a,b,c);
System.out.println("三角形的面积是:"+t1.getArea());
}
catch(TriangleException1 e1)
{
System.out.println(e1);
}
catch(TriangleException2 e2)
{
System.out.println(e2);
}
finally
{
// 无论是否发生异常,都会执行
System.out.println("求三角形面积");
}
}
}
4. 运行结果