一、题目:
写一个方法void sanjiao(int a,int b,int c),判断三个参数是否能构成一个三角形,(任意两边之和大于第三边,任意两边之差小于第三边)如果不能则抛出自定义异常(ErrorSideException),显示异常信息a,b,c+”不能构成三角形”,如果可以构成则显示三角形三个边的长度,在main方法中调用此方法,并捕获异常。
(1)"三角形类"和自定义异常类 :
package com.feisi.tri;
public class Triangle {
private double a;
private double b;
private double c;//三角形的三条边
public Triangle(){
this.a=0;
this.b=0;
this.c=0;//默认三条边:初始化为0
}
public Triangle(double a,double b,double c){
this.a=a;
this.b=b;
this.c=c;
}
public double getA() {
return a;
}
public void setA(double a) {
this.a = a;
}
public double getB() {
return b;
}
public void setB(double b) {
this.b = b;
}
public double getC() {
return c;
}
public void setC(double c) {
this.c = c;
}
public void ifTriangle(double a,double b,double c)throws ErrorSideException{
if(a+b<=c){
throw new ErrorSideException("a、b、c:不能构成三角形");
}
else if(a+c<=b){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(b+c<=a){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(a-b>=c){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(a-c>=b){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(b-c>=a){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(b-a>=c){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(c-a>=b){
throw new ErrorSideException("a、b、c:不能构成三角形");
}else if(c-b>=a){
throw new ErrorSideException("a、b、c:不能构成三角形");
}
}
}
class ErrorSideException extends Exception{
public ErrorSideException(){
super();
}
public ErrorSideException(String message){
super(message);
}
}
(2)测试类:
package com.feisi.test;
import com.feisi.tri.*;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请分别输入a、b、c:三条边的长度");
try {
Triangle triangle = new Triangle(sc.nextDouble(), sc.nextDouble(), sc.nextDouble());
triangle.ifTriangle(triangle.getA(),triangle.getB(),triangle.getC());
System.out.println("三条边能够构成三角形:a、b、c的长度分别为:"+triangle.getA()+" "+triangle.getB()+" "+triangle.getC());
}catch (Exception e){
System.out.println(e.getMessage());
}
}
}
(3)
测试结果一:
测试结果二: