黑马程序员技术交流社区

标题: 关于自定义异常的问题 ?? 抛出自定义异常 [打印本页]

作者: 荣天    时间: 2012-5-21 15:01
标题: 关于自定义异常的问题 ?? 抛出自定义异常
写一个自定义异常类,为什么抛出自定义异常
throw new myException();
还要给throw new myException();抛出异常呢?
照理来说使用throw new myException()的时候可能存在异常,所以要捕获。

根据java异常处理机制写一个和java.lang包里面同样功能异常类也是要捕获,但用java.lang包里面的却不用捕获异常。初步怀疑是不是java虚拟机已经在这个机制当中抛出了异常。

附代码
public class myException extends Exception{public myException(){super();}}
public class useException
{
        public static void main(String getget[])
        {
                throw new myException();//此没有捕获异常
        }
}

但是为什么使用自定义异常要捕获,写成这样
    try
        {
                throw new myException();//此捕获了异常
        }catch(myException mye)
        {
               
        }
即使自定义写一个类库和JDK完全同样功能的异常,也要这样,而直接使用JDK的类库不需要捕获。

如果虚拟机底层为JDK类库抛出,为什么不自动帮自定义异常的异常捕获,当用户需要人工抛出才写try?
作者: 荣天    时间: 2012-5-21 15:03
  坐等 赐教   自己先定下
作者: Fc10232    时间: 2012-5-21 15:07
有异常当然要捕获,你自己抛出的也是异常呀;
你要是把异常全部抛出---->在主方法处使用throws Exception的话,下面就不用try----catch了
作者: 凡延海    时间: 2012-5-21 15:11
因为自定义的异常类不是由java系统监测到的异常,是用户自己定义的异常。自定义的异常也是try...catch来捕获的,系统无法在try语句检测并生成一个自定义的异常对象,因而需要自己主动抛出了。




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