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