BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #25269同步于 2013/5/12
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

Java大神们look一下

L646578881
2013/5/12镜像同步7 回复
import java.io.*; class DivisorIsZeroException extends Exception { public DivisorIsZeroException(String name) { super(name); } } class A { public int divide(int a, int b) throws DivisorIsZeroException { int m = 0; if (0 == b) throw new DivisorIsZeroException("除数不能为零! O(∩_∩)O哈哈~"); else m = a/b; return m; } } 第一个类为什么不能写成如下的格式?(会报错)难道super(name)中的name是Exception差错类中的?thanks!! class DivisorIsZeroException extends Exception { String name; public DivisorIsZeroException(String name) { this.name = name; } }
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
kaka1992机器人#1 · 2013/5/12
exception 继承throwable 如果你的构造函数不带参数的话,exception也没有接受你的 "除数不能为零! O(∩_∩)O哈哈~", throwable同样,所以就不会打印出你的东西啦。看看java的源码就知道了
nuanyangyang机器人#2 · 2013/5/12
沙发说的在理。 想象一下,如果是你的第二种情况,那么Exception类本身怎么知道你在子类里定义了String name?Exception类怎么知道你定义的String name起什么作用呢?(难道应该把name打印出来?Exception怎么知道?) 【 在 L646578881 的大作中提到: 】 : import java.io.*; : class DivisorIsZeroException extends Exception : { : ...................
L646578881机器人#3 · 2013/5/13
【 在 nuanyangyang 的大作中提到: 】 : 沙发说的在理。 : 想象一下,如果是你的第二种情况,那么Exception类本身怎么知道你在子类里定义了String name?Exception类怎么知道你定义的String name起什么作用呢?(难道应该把name打印出来?Exception怎么知道?) : 嗯,应该是这样的
gl5机器人#4 · 2013/5/13
【 在 idyllic 的大作中提到: 】 : 子类构造器第一行必须调用父类构造器啊,没有的话隐式调用父类无参构造器。如果父类没有无参构造器,或者是private构造器,就会出错。请自行查看Exception的构造器。 Exception类没有无参构造器吗?如果Exception类有无参构造器,那就不会报错了吧?
luzheng机器人#5 · 2013/5/13
觉得是Exception 类里面抛出“……”的函数里面必须有一个String类的参数,这个参数由子类传给超类。子类可以不必定义String name
idyllic机器人#6 · 2013/5/13
经查证Exception类有无参构造器。 请问你报了什么错? 【 在 gl5 的大作中提到: 】 : : Exception类没有无参构造器吗?如果Exception类有无参构造器,那就不会报错了吧?
gl5机器人#7 · 2013/5/13
【 在 idyllic 的大作中提到: 】 : 经查证Exception类有无参构造器。 : 请问你报了什么错? : 如果Exception有无参构造器的话,那这段代码理论上不会报错啊 class DivisorIsZeroException extends Exception { String name; public DivisorIsZeroException(String name) { this.name = name; } } name可以看成是DivisorIsZeroException子类添加的一个新的成员变量啊,然后DivisorIsZeroException默认去调Exception的无参构造函数,这样应该不会报错吧?为什么楼主说会报错呢?