读书人

关于try-catch语句处理错误

发布时间: 2013-11-08 17:52:35 作者: rapoo

关于try-catch语句处理异常~
interface Choose //接口
{
String Choose(); //选课
}
class AgeException extends Exception //定义类AgeException--小学生年龄小于7的异常处理类
{
String s;
AgeException()
{
s="小学生的年龄不能小于7!";
}
public String toString()//输出出错信息
{
return s;
}
}
class Student //定义一个名为Student的父类
{
String name;//姓名
char sex;//性别
String grade;//年级
public Student()
{}
public Student(String n,char s,String g)//定义构造方法,用来进行初始化
{
name=n;//将传递进来的n赋给name
sex=s;//将传递进来的s赋给sex
grade=g;//将传递进来的g赋给grade
}
public void setname(String newname)//设置姓名
{
name=newname;
}
public String getname() //获取姓名
{
return name;
}
public void setsex(char newsex) //设置性别
{
sex=newsex;
}
public char getsex()//获取性别
{
return sex;
}
public void setgrade(String newgrade)//设置年级
{
grade=newgrade;
}
public String getgrade()//获取年级
{
return grade;
}
}
class Academician extends Student //继承于Student的子类:大学生
{
int Aage;//年龄
public Academician()
{}
public Academician(String n,char s,String g,int A) //定义构造方法,用来进行初始化
{
super(n,s,g);//调用父类的构造方法
Aage=A;
}
public void setAage(int newAage)//设置年龄
{
Aage=newAage;
}
public int getAage()//获取年龄
{
return Aage;
}
public String Choose()//实现选课接口
{
return "正在进入选课系统";
}
}
class Pupil extends Student//继承于Student的子类:小学生
{
int Page;//年龄
public Pupil()
{}
public Pupil(String n,char s,String g,int P) throws AgeException //增加异常处理
{
super(n,s,g);//调用父类的构造方法
Page=P;
if(Page<7)//当小学生年龄小于7时抛出异常
throw(new AgeException());
}
public void setPage(int newPage)//设置年龄
{
Page=newPage;
}
public int getPage()//获取年龄
{
return Page;
}
}
public class xqq_Applicationtigao1 //编写测试类
{
public static void main(String args[])
{
Academician A1=new Academician("张三",'男',"大学一年级",18); //给大学生A1赋值
System.out.println("姓名:"+A1.getname());
System.out.println("性别:"+A1.getsex());
System.out.println("年级:"+A1.getgrade());
System.out.println("年龄:"+A1.getAage());
System.out.println("选课情况:"+A1.Choose());
System.out.println("\n\n");
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
System.out.println("姓名:"+P1.getname());
System.out.println("性别:"+P1.getsex());
System.out.println("年级:"+P1.getgrade());


System.out.println("年龄:"+P1.getPage());
}
}
求教在此程序中怎么添加try-catch语句,目的是当小学生年龄小于7岁时,弹出异常!! 异常处理 exception 继承
[解决办法]

引用:
Quote: 引用:

Quote: 引用:


改成throws之后就变成非法语句了

你程序本身也没错,在构造函数中添加了抛出异常的操作。
你使用文本编辑器编辑的java吧,字母打错了。。直接拷贝这个吧

package com.test;

interface Choose // 接口
{
String Choose(); // 选课
}
class Student //定义一个名为Student的父类
{
String name;//姓名
char sex;//性别
String grade;//年级
public Student()
{}
public Student(String n,char s,String g)//定义构造方法,用来进行初始化
{
name=n;//将传递进来的n赋给name
sex=s;//将传递进来的s赋给sex
grade=g;//将传递进来的g赋给grade
}
public void setname(String newname)//设置姓名
{
name=newname;
}
public String getname() //获取姓名
{
return name;
}
public void setsex(char newsex) //设置性别
{
sex=newsex;
}
public char getsex()//获取性别
{
return sex;
}
public void setgrade(String newgrade)//设置年级
{
grade=newgrade;
}
public String getgrade()//获取年级
{
return grade;
}
}

class AgeException extends Exception // 定义类AgeException--小学生年龄小于7的异常处理类
{
String s;

AgeException() {
s = "小学生的年龄不能小于7!";
}

public String toString()// 输出出错信息
{
return s;
}
}

class Academician extends Student // 继承于Student的子类:大学生
{
int Aage;// 年龄

public Academician() {
}

public Academician(String n, char s, String g, int A) // 定义构造方法,用来进行初始化
{
super(n, s, g);// 调用父类的构造方法
Aage = A;
}

public void setAage(int newAage)// 设置年龄
{
Aage = newAage;
}

public int getAage()// 获取年龄
{
return Aage;
}

public String Choose()// 实现选课接口
{
return "正在进入选课系统";
}
}

class Pupil extends Student// 继承于Student的子类:小学生
{
int Page;// 年龄

public Pupil() {
}

public Pupil(String n, char s, String g, int P) throws AgeException // 增加异常处理
{
super(n, s, g);// 调用父类的构造方法
Page = P;
if (Page < 7)// 当小学生年龄小于7时抛出异常
throw (new AgeException());
}

public void setPage(int newPage)// 设置年龄
{
Page = newPage;
}

public int getPage()// 获取年龄
{
return Page;
}
}

public class Test {
public static void main(String args[]) {
Academician A1 = new Academician("张三", '男', "大学一年级", 18); // 给大学生A1赋值
System.out.println("姓名:" + A1.getname());
System.out.println("性别:" + A1.getsex());
System.out.println("年级:" + A1.getgrade());
System.out.println("年龄:" + A1.getAage());
System.out.println("选课情况:" + A1.Choose());
System.out.println("\n\n");
Pupil P1 = null;
try {
P1 = new Pupil("李四", '女', "二年级", 3);
} catch (AgeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} // 给小学生P1赋值
System.out.println("姓名:" + P1.getname());
System.out.println("性别:" + P1.getsex());
System.out.println("年级:" + P1.getgrade());


System.out.println("年龄:" + P1.getPage());
}
}


读书人网 >J2SE开发

热点推荐