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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张昊镭 黑马帝   /  2012-4-8 15:40  /  1886 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class FuShuException extends Exception
{}
class Demo
{
    int div(int x,int y)throws FuShuException
    {
        if(y<0)
            throw new FuShuException();
        return x/y;
    }
}
class ExceptionDemo
{
    public static void main(String[] args)
    {
        Demo d=new Demo();
        try
        {
            int x=d.div(4,-1);
            System.out.println("x:"+x);
        }
        catch(FuShuException f)
        {
            System.out.println(f.toString());
        }
        System.out.println("over");        
    }   
}

问题就是:
红色的那两句代码如何理解呢,我的理解是catch(FuShuException f)就相当于FuShuException f=new FuShuException,不知道这样理解行不.

4 个回复

倒序浏览
可以
FuShuException f=new FuShuException
catch(f)
不同的是f是产生了一个对象实例。

而catch(FuShuException f)就是一个 临时对象传入。
f只用一次。
回复 使用道具 举报
可以。
throw new FuShuException()抛出一个异常对象。
catch(FuShuException f)中的FuShuException f相当于定义了一个FuShuException类型的变量f。
f可以用来接收new FuShuException()。
回复 使用道具 举报

throw new FuShuException();手动通过throw关键字抛出一个自定义异常对象"出现了除数为负数"

通过catch(FuShuException f)来接收 new FuShuException();
回复 使用道具 举报
让美国警察于今后逮捕人说你有权保持沉默还有权阅读某某帖子要不要啊的好帖  
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马