黑马程序员技术交流社区

标题: 有关异常的try-catch问题 [打印本页]

作者: 张昊镭    时间: 2012-4-8 15:40
标题: 有关异常的try-catch问题
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,不知道这样理解行不.
作者: 刘士    时间: 2012-4-8 15:43
可以
FuShuException f=new FuShuException
catch(f)
不同的是f是产生了一个对象实例。

而catch(FuShuException f)就是一个 临时对象传入。
f只用一次。
作者: 黑马老兵    时间: 2012-4-8 16:11
可以。
throw new FuShuException()抛出一个异常对象。
catch(FuShuException f)中的FuShuException f相当于定义了一个FuShuException类型的变量f。
f可以用来接收new FuShuException()。
作者: 文密    时间: 2012-4-8 19:24

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

通过catch(FuShuException f)来接收 new FuShuException();
作者: pray    时间: 2014-4-26 05:51
让美国警察于今后逮捕人说你有权保持沉默还有权阅读某某帖子要不要啊的好帖  




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