关于try-catch语句处理异常~

时间:2023-02-19 15:49:42
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岁时,弹出异常!!

6 个解决方案

#1


首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

#2


引用 1 楼 AA5279AA 的回复:
首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

#3


引用 2 楼 u012257679 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

throw改成
throws

#4


引用 2 楼 u012257679 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

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

#5


引用 3 楼 AA5279AA 的回复:
Quote: 引用 2 楼 u012257679 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

throw改成
throws

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

#6


引用 4 楼 u012257679 的回复:
Quote: 引用 2 楼 u012257679 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:


改成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());
}
}

#1


首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

#2


引用 1 楼 AA5279AA 的回复:
首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

#3


引用 2 楼 u012257679 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

throw改成
throws

#4


引用 2 楼 u012257679 的回复:
Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

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

#5


引用 3 楼 AA5279AA 的回复:
Quote: 引用 2 楼 u012257679 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:

首先抛出异常
public void setPage(int newPage)//设置年龄
    {
if(newPage<7)throw new  AgeException
Page=newPage;
       
    }
然后try{
Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
}catch (Exception e) {
// TODO: handle exception
}

照指导修改之后程序为:
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) //赋初值
    {
        super(n,s,g);//调用父类的构造方法
        Page=P;
    }
    public void setPage(int newPage)//设置年龄
    {
        if(newPage<7)
        throw (new  AgeException());//抛出异常
        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");
   try
   {
      Pupil P1=new Pupil("李四",'女',"二年级",8); //给小学生P1赋值
   }
    catch (Exception e)
    {}
       System.out.println("姓名:"+P1.getname());
       System.out.println("性别:"+P1.getsex());
       System.out.println("年级:"+P1.getgrade());
       System.out.println("年龄:"+P1.getPage());
    }
}
但是报错:
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:91: 未报告的异常 AgeException;必须对其进行捕捉或声明以便抛出
        throw (new  AgeException());//抛出异常
        ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:116: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("姓名:"+P1.getname());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:117: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("性别:"+P1.getsex());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:118: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年级:"+P1.getgrade());
                                ^
C:\Users\xuqianqian\Desktop\xqq_Applicationtigao1.java:119: 找不到符号
符号: 变量 P1
位置: 类 xqq_Applicationtigao1
       System.out.println("年龄:"+P1.getPage());
错误在哪儿?`~~~

throw改成
throws

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

#6


引用 4 楼 u012257679 的回复:
Quote: 引用 2 楼 u012257679 的回复:

Quote: 引用 1 楼 AA5279AA 的回复:


改成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());
}
}