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继承

解决方案 »

  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.   

    照指导修改之后程序为:
    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.   

    照指导修改之后程序为:
    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.   

    照指导修改之后程序为:
    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.   

    照指导修改之后程序为:
    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.   

    你程序本身也没错,在构造函数中添加了抛出异常的操作。
    你使用文本编辑器编辑的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());
    }
    }