A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄克帅 中级黑马   /  2012-5-26 15:41  /  1402 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黄克帅 于 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("结束");
        }
}

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

2 个回复

倒序浏览
toString():返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法,Exception重写了toString()方法,返回的就是本身,即:getMessage()。
Object 类的 toString 方法返回一个字符串,

评分

参与人数 1技术分 +1 收起 理由
攻城狮 + 1 赞一个!

查看全部评分

回复 使用道具 举报
对2楼的回答进行补充:
Exception重写了toString()方法,返回的就是本身,即:getMessage()。

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

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


异常的toString() 方法是怎么调用getMessage() 方法的?
这个问题了解即可,我们在自定义异常时,通常都会按自己的需求复写toString()方法和getMessage()方法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马