关于Java自定义异常类。定义MyException继承Exception。
关于Java自定义异常类。定义MyException继承Exception。当我在main方法里调用e.toString()时,为什么在有异常的时候输出了我在子类构造方法...
关于Java自定义异常类。定义MyException继承Exception。当我在main方法里调用e.toString()时,为什么在有异常的时候输出了我在子类构造方法初始化的那句话?(没有必要在子类里对toString进行重写吗?)
展开
1个回答
展开全部
你继承了Exception,所以也继承了Exception的toString方法啊,所以你使用的实际上是Exception的toString方法哦
追问
不太理解为什么在子类MyException里的初始化构造方法里的字符串("除数不能为负数哦"这句话)能用在toString里而且能输出这句话??是因为toString方法的原型return了一个msg吗?
虽然我使用的是父类的toString方法,但不是可以重写吗?
追答
Exception继承Throwable你知道的吧,下面的是Throwable的toString方法,Exception没有重写这个方法,所以你用的toString方法实际上就是下面的方法,getLocalizedMessage实际上就是你传入的msg哦!!
public String toString() {
String s = getClass().getName();
String message = getLocalizedMessage();
return (message != null) ? (s + ": " + message) : s;
}
你当然可以重写的啊,如果你觉得这个方法不能满足你的话,如果够用为什么还要重写
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询