黑马程序员技术交流社区

标题: 自定义异常类的问题 [打印本页]

作者: 362688114    时间: 2014-5-2 17:49
标题: 自定义异常类的问题
视频里自定义一个异常类这一部分。
* 为什么自定义的这个异常类不能用public修饰?
* 运行后错误信息提示是:The public type exceptionDemo must be defined in its own file




  1. //自定义一个异常类,继承Exception类。
  2. class exceptionDemo extends Exception{  
  3.         private String msg; //定义一个字符串类型的成员变量
  4.         exceptionDemo(String msg) {  //新建一个带字符串类型参数的构造方法
  5.                 this.msg=msg;
  6.         }

  7.         public void getMsg(){   //定义一个输出错误信息提示的方法
  8.                 System.out.println("错误提示:"+msg);
  9.         }
  10. }


  11. //定义一个接口,该接口拥有一个图形共有的面积特征
  12. interface shape{  
  13.         abstract void are(double d) throws exceptionDemo; //获得面积的抽象方法
  14. }


  15. //定义一个类继承图形接口
  16. class circle implements shape{
  17.         public final double PI=3.14;  //final修饰的常量
  18.         public void are(double d) throws exceptionDemo{ //重写计算面积方法
  19.                 if(d<0)  //对参数判断如果不合适就抛出自定义的异常
  20.                         throw new exceptionDemo("非法");
  21.                 System.out.println(d*d*PI);
  22.         }
  23. }


  24. //测试类
  25. public class ziDingYiException {
  26.          public static void main(String[] args) {
  27.                 try {
  28.                         circle c=new circle(); //初始化类
  29.                         c.are(-1);  //调用计算面积的方法
  30.                 } catch (exceptionDemo e) {   //捕获异常,并进行处理
  31.                         System.out.println("错误信息:"+e.toString());
  32.                 }
  33.         }
  34. }
复制代码

作者: SyouRai_Tsk    时间: 2014-5-2 18:05
1.因为继承时,子类方法访问修饰符的权限不能小于父类的
2.错误信息是由这句话引起的 c.are(-1);  //调用计算面积的方法

认真看视频!!!
作者: skill20    时间: 2014-5-2 18:11
多个类在源代码时,只能有一个类用public修饰。
作者: 362688114    时间: 2014-5-2 23:52
SyouRai_Tsk 发表于 2014-5-2 18:05
1.因为继承时,子类方法访问修饰符的权限不能小于父类的
2.错误信息是由这句话引起的 c.are(-1);  //调用计 ...

但自定义的异常类没有被继承
作者: 362688114    时间: 2014-5-2 23:54
skill20 发表于 2014-5-2 18:11
多个类在源代码时,只能有一个类用public修饰。

就是说,我的代码里定义了三个类,只有一个能被public修饰。
作者: 歌癫    时间: 2014-5-3 01:01
在一个java源文件中,有且只能有一个类用public修饰,这个用public修饰的类名最好喝java源文件名相同。这样便于浏览和有意义。
作者: 362688114    时间: 2014-5-3 16:35
歌癫 发表于 2014-5-3 01:01
在一个java源文件中,有且只能有一个类用public修饰,这个用public修饰的类名最好喝java源文件名相同。这样 ...

thank you!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2