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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class FuShuException extends Exception
{
        private int value;
        FuShuException()
        {
                super();
        }
        FuShuException(String msg,int value)
        {
                super(msg);
                this.value = value;
        }
        public int getValue()
        {
                return value;
        }
}
class memo
{
        int div(int a,int b)throws FuShuException
        {
                if(b<0)
                        throw new FuShuException("出现了除数是负数的情况------ / by fushu",b);
                //手动通过throw关键字抛出一个自定义异常对象。
                return a/b;
        }
}
class  jh
{
        public static void main(String[] args)
        {
                memo d = new memo();
                try
                {
                        int x = d.div(4,2);
                        System.out.println("x="+x);               
                }
                catch (FuShuException e)
                {
                        System.out.println(e.toString());
                        System.out.println("错误的负数是:"+e.getValue());
                }
                System.out.println("over");
        }
}

这个throw抛出和常规的return返回有什么区别吗?或者说这个throw可以用return返回调用吗?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

倒序浏览
异常主要是程序运行出现不合法的操作或数据的时候抛出的错误,一般分为Error和Exception,Error直接不可操作处理,Exception可以对异常进行处理或抛出
return主要是程序运行返回的结果
回复 使用道具 举报
楼主的想法或许可以这样理解,当异常发生时,可以抛给当前函数的调用者,让调用者对异常进行处理,而一个函数中的return语句也是给这个函数的调用者返回一个资源,但是,所有的异常都属于throwable体系中,可抛性是这个体系独有的特点,抛出的异常可以用try/catch进行捕获处理,那如果用return返回异常对象那调用者应该怎么接收,无法有针对性的捕获便不能对异常做出针对性的处理,所以说,异常只能抛出,不能返回
回复 使用道具 举报
IC-月辰 发表于 2013-1-26 09:42
楼主的想法或许可以这样理解,当异常发生时,可以抛给当前函数的调用者,让调用者对异常进行处理,而一个函 ...

直接调用异常里面的函数火车参数不行吗?异常类接收的不也是对应的函数或者参数吗?

点评

你的意思是不是这样: try{ throw new aaaException(); //这个地方可不可以调用一个方法,这个方法return了一个异常对象? }catch(){...}  发表于 2013-1-26 10:16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马