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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写一个自定义异常类,为什么抛出自定义异常
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?

3 个回复

正序浏览
因为自定义的异常类不是由java系统监测到的异常,是用户自己定义的异常。自定义的异常也是try...catch来捕获的,系统无法在try语句检测并生成一个自定义的异常对象,因而需要自己主动抛出了。
回复 使用道具 举报
有异常当然要捕获,你自己抛出的也是异常呀;
你要是把异常全部抛出---->在主方法处使用throws Exception的话,下面就不用try----catch了
回复 使用道具 举报
  坐等 赐教   自己先定下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马