黑马程序员技术交流社区

标题: 自定义异常问题 [打印本页]

作者: Friendy89    时间: 2013-4-4 13:53
标题: 自定义异常问题
本帖最后由 Friendy89 于 2013-4-4 22:11 编辑

class FuShuException extends Exception
{
        FuShuException(String msg)
        {
                super(msg);
        }
}
class Demo2
{
        int div(int a,int b)throws FuShuException
        {
                if(b<0)
                throw new FuShuException("出现了除数是负数的情况  / by FuShu");                  return a/b;
        }
}
public class ExceptionDemo2
{

        public static void main(String[] args)
        {
                Demo2 d=new Demo2();
                try
                {
                        int x=d.div(9, -3);
                System.out.println("x="+x);
                }
                catch(FuShuException e)
                {
                        System.out.println(e.toString());
                        System.out.println("除数出现负数了");
                        
                }
                System.out.println("over");
        }

}
这个函数中为什么不用定义父类方法Exception,子类就可以直接继承父类呢
作者: 李芳池    时间: 2013-4-4 14:42
Exception 类是所有异常类的父类,可以捕获所有异常,你继承后的自定义异常类只可以捕获抛出你自定义的异常
作者: 张源锋    时间: 2013-4-4 14:58
Excption是jdk中的类不用自己定义
作者: 刘策    时间: 2013-4-4 15:36
Throwable 类是 Java 语言中所有错误或异常的超类。Error和Exception是它的小弟,有的方法也是从它大哥那继承过来的。
作者: 袁杰    时间: 2013-4-4 16:34
不知道楼主所说的““这个函数中为什么不用定义父类方法Exception,子类就可以直接继承父类呢””具体指代那个函数
不管指代那个函数:首先我们要明的一点是Throwable派系都具有可抛性,就是可以通过Throw或者Throws抛出到上一级的调用者手中
然后我们再来先看看异常的流程吧:
        首先:main函数调用div方法,由于除数是负数所以要抛出自定义的异常,
        然后:程序会调用FuShuException 的构造函数,建立一个FuShuException实例,并把("出现了除数是负数的情况  / by FuShu")作为参数传递给
              FuShuException的构造函数,再进一步通过super(msg)调用Exception的构造函数
        再然后:在生成了异常实例后由于选择的是Throws处理方式,所以就会抛出(其中的过程JDK已经为我们封装好了,包括把异常对象入栈等)
        最后 流程就有返回主函数了,在主函数中定义了catch块,异常就会被自动捕获(实际上这也是Java内部的处理工作),
             并取通过ToString()取出自定义的异常信息
               


作者: Friendy89    时间: 2013-4-4 18:40
明白了,谢谢大家{:soso_e100:}
作者: Friendy89    时间: 2013-4-4 18:44
麻烦告知一下,怎么把 未解决 标签 改成 已解决,具体怎么改  谢谢
作者: 袁杰    时间: 2013-4-4 18:55
楼主提问板块和回答问题的板块间有一个编辑。。。。。。
作者: Friendy89    时间: 2013-4-4 19:40
袁杰 发表于 2013-4-4 18:55
楼主提问板块和回答问题的板块间有一个编辑。。。。。。

我只知道在发新帖的时候有,其他地方就没看到了,能发个截图看下吗,谢谢
作者: 袁杰    时间: 2013-4-4 20:49
标题: 截图
本帖最后由 袁杰 于 2013-4-4 20:51 编辑

设置为已解决

123.PNG (10.16 KB, 下载次数: 12)

123.PNG

作者: Friendy89    时间: 2013-4-4 22:12
袁杰 发表于 2013-4-4 20:49
设置为已解决

太感谢了,改好了




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