不能构成三角形,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
import java.util.Scanner; public class Test3 {
public static void main(String[] args) {
// TODO Auto-generated method stub Scanner s=new Scanner(System.in); int a=s.nextInt(); int b=s.nextInt(); int c=s.nextInt();
try{
sanjiao(a,b,c); }
catch(IllegalArgumentException ex){ System.out.println(ex.getMessage()); } { }
}
} else{ }
throw new IllegalArgumentException(\三边长不能构成三角形\); if ((a + b > c) && (a + c > b) && (c + b > a)) { System.out.println(\三边长分别为\ + a + b + c); } else{ }
throw new IllegalArgumentException(\三边长不能构成三角形\);
if (a > 0 && b > 0 && c > 0) { }
static void sanjiao(int a, int b, int c) throws IllegalArgumentException
自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo,这2个方法中当三条边不能构成一个三角形时要抛出自定义异常NotSanjiaoException,否则显示正确信息。在另外一个类中的主方法中构造一个Sanj对象(三边为命令行输入的三个整数),显示三角形信息和面积,要求捕获异常。
package com.inspur.chapter13;
public class NotSanjiaoException extends Exception {
NotSanjiaoException(String message){ }
6
super(message);
}
package com.inspur.chapter13; public class Sanj { int a; int b; int c;
public void getArea() throws NotSanjiaoException { if (a > 0 && b > 0 && c > 0) { if ((a + b > c) && (a + c > b) && (c + b > a)) { // 合法,计算面积
System.out.println(a * b * c); } else {
// 不合法
throw new NotSanjiaoException(\不能构成三角形\);
}
} else {
// 不合法
throw new NotSanjiaoException(\不能构成三角形\); }
}
public void getInfor() throws NotSanjiaoException { if (a > 0 && b > 0 && c > 0) { if ((a + b > c) && (a + c > b) && (c + b > a)) { // 合法,计算面积
System.out.println(\ + a + \ + b + \ + c); } else {
// 不合法
throw new NotSanjiaoException(\不能构成三角形\); }
} else {
// 不合法
throw new NotSanjiaoException(\不能构成三角形\);
}
}
public static void main(String[] args) { Sanj s = new Sanj(); s.a = -1; s.b = 9; s.c = 10; try {
s.getArea();
} catch (NotSanjiaoException e) { System.out.println(e.getMessage());
}
7
}
}
try { }
s.getInfor();
System.out.println(e.getMessage()); } catch (NotSanjiaoException e) {
8