题目:
课堂练习1:
写一个方法void triangle(int a,int b,int c),判断三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息:a,b,c “不能构成三角形”;如果可以构成则显示三角形三个边长。在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
a<b<c
两边之和大于第三边:a+b>c
两边之差小于第三边:c-a<a
代码:
package java11;
public class Tri {
int a;
int b;
int c;
public Tri(int a,int b,int c ){
this.a=a;
this.b=b;
this.c=c;
}
void judge(int a,int b,int c){
if(a+b>c&&a-b<c)
System.out.println("可以构成一个三角形");
}
}
package java11;
import java.util.Scanner;
public class Triangle {
public static <Sanjiao> void main(String[] args){
try{
Scanner in=new Scanner(System.in);
System.out.printf("请输入三角形的三条边");
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
Tri Sanjiao=new Tri(a, b, c);
System.out.println(String.format("%int-%int<%int","%int+%int>%int",a,b,c,a+b>c,a-b<c));
} catch(IllegalArgumentException e){
System.err.println("出现错误;三角形的两边之和大于第三边"+"三角形两边之差小于第三边");
System.exit(1);
}finally{
System.out.println("感谢使用本程序");
}
}
}
截图:
总结:
1.使用try-catch块捕获异常,分为三种情况:
(1)public void method(){
try {
// 代码段(此处不会产生异常)
} catch (异常类型 ex) {
// 对异常进行处理的代码段
}
// 代码段
}
(2)public void method(){
try {
// 代码段 1
// 产生异常的代码段 2
// 代码段 3
} catch (异常类型 ex) {
// 对异常进行处理的代码段4
}
// 代码段5
(3)public void method(){
try {
// 代码段 1
// 产生异常的代码段 2
// 代码段 3
} catch (异常类型 ex) {
// 对异常进行处理的代码段4
}
// 代码段5
2.(1)throws 声明异常
- 用在声明方法时,表示该方法可能要抛出异常,使它的调用者知道要捕获这个异常。
- throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>]
(2)throw 抛出异常
- 用在方法体中,明确在这个地方要抛出异常。
- throw语法:throw <异常对象>