黑马程序员技术交流社区

标题: [已解决]异常小问题 [打印本页]

作者: 黄克帅    时间: 2012-5-26 15:41
标题: [已解决]异常小问题
本帖最后由 黄克帅 于 2012-5-27 10:57 编辑

异常的toString() 方法是怎么调用getMessage() 方法的?


public class Exce {
        public int shang(int a ,int b) throws FushuExec {//声明可能会出现异常,调用这个方法的时候要么继续抛出异常 要么处理。
                if(b<0){
                        throw new FushuExec("b不能是负数");//通过throw抛出自定义异常对象,需要处理或继续抛出
                }
                return a/b;
        }
        
}

//自定义异常  继承Exception类
public class FushuExec extends Exception{
        //因为父类一构造好异常信息,所以通过子类构造方法通过super把信息传给父类,就可以通过getMessage获得自定义信息
        FushuExec(String msg){
                super(msg);
        }
        
}

public class Test {
        public static void main(String[] args) {
                Exce exec = new Exce();
                        try {
                                exec.shang(3, -9);
                        } catch (FushuExec e) {
                                
                                System.out.println(e.toString());//toString();自动调用getMessage方法
                        }
               
                System.out.println("结束");
        }
}
作者: 马超    时间: 2012-5-26 16:25
toString():返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法,Exception重写了toString()方法,返回的就是本身,即:getMessage()。
Object 类的 toString 方法返回一个字符串,
作者: 徐炯    时间: 2012-5-27 01:20
对2楼的回答进行补充:
Exception重写了toString()方法,返回的就是本身,即:getMessage()。

补充:Exception类的getMessage()方法,返回的是异常信息。Exception类的toString()方法,返回的是异常类名和异常信息。

本帖最后由 黄克帅 于 2012-5-26 15:43 编辑


异常的toString() 方法是怎么调用getMessage() 方法的?
这个问题了解即可,我们在自定义异常时,通常都会按自己的需求复写toString()方法和getMessage()方法。




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