第六章
【练习6.1 】
[思考题] 请思考Java程序中编译时错误、逻辑错误和异常之间区别。
编译时的错误常常是语法上的错误。通过编译器错误提示,能较容易修改。
程序逻辑上的错误是能被编译器编译通过,并能顺利运行,但运行出来的结果往往不是我们预期的结果。
异常是在程序运行过程中出现了错误导致程序终止,常常是运行时的错误。
练习6.2
1.C
2.A
练习6.3
1.C
2.D
3.A
4.B
5.B
6.C
练习6.4
1.B
2.D
练习6.5
1.C
2.捕获异常;继续声明异常
java程序设计教程 机械工业出版社 崔淼 电子书
练习6.6
1.A
2.C
3.Exception;throws
4.It’s caught!
It’s finally caught!
习题6
2.不会
3.[编程题]定义Triangle 类,其中包含一个方法void sanjiao(int a,int b,int c),用来判断
三个参数是否能构成一个三角形。如果不能则抛出异常IllegalArgumentException,显示异常信息a,b,c+”
不能构成三角形”,如果可以构成则显示三角形三个边长,在主方法中得到命令行输入的三个整数,调用此方法,并捕获异常。
import java.util.Arrays;
import java.util.Scanner;
public class Triangle {
public static void sanjiao(int a,int b,int c)throws Exception {
if(a+b>c && c-a<b){
System.out.println("能构成三角形");
System.out.println("a="+a+","+"b="+b+","+"c="+c);
}
else {
throw new IllegalArgumentException(a+","+b+","+c+" 不能构成三角形");
}
}
public static void main(String[] args){
int a[]=new int[3];
System.out.println("输入三个整数");
for(int i=0;i<3;i++){
Scanner sc=new Scanner(System.in);
a[i]=sc.nextInt();
}
Arrays.sort(a);//数组默认的从小到大排序,以保证三角形判定准则有效
try{
sanjiao(a[0],a[1],a[2]);
}catch(IllegalArgumentException e){
e.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}
}
}
4.编写三个自定义异常类,分别为空异常类、年龄小异常类和年龄大异常类。再编写一
个学生类,包括学号、姓名、年龄属性和一个构造方法。其中构造方法设置学号,年龄和姓名。如果年龄小于3,抛出年龄小异常;如果年龄大于35,则抛出年龄大异常;如果姓名为空,则抛出空异常。最后编写测试程序。
import java.util.Scanner;
class LowAgeException extends Exception{
public LowAgeException(String message) {
super(message);
}
}
class HeightAgeException extends Exception{
public HeightAgeException(String message) {
super(message);
}
}
class NullException extends Exception{
public NullException(String message) {
super(message);
}
}
class Student{
private String ID;
private String name;
private int age;
Student(String ID,String name,int age)throws Exception{ if(age<3) {
throw new LowAgeException("年龄太小了!");
}else if(age>35) {
throw new HeightAgeException("年龄太大了!");
}else if((name.equals(""))||name==""){
throw new NullException("姓名不能为空!");
}
}
}
public class Exception_student {
public static void main(String[] args) {
String ID;
String name;
int age;
Scanner in = new Scanner(System.in);
Line();
Line();
Int();
try {
Student s = new Student(ID, name, age);
}catch(Exception e) {
e.printStackTrace();
}
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。