当前位置: 代码迷 >> J2SE >> 几个QQ群都不能解释的有关问题:自定义Exception的子类(子类继承Exception类,并未作任何修改),却不能捕捉原来Excepton能捕捉的错误,为什么
  详细解决方案

几个QQ群都不能解释的有关问题:自定义Exception的子类(子类继承Exception类,并未作任何修改),却不能捕捉原来Excepton能捕捉的错误,为什么

热度:9052   发布时间:2013-02-25 00:00:00.0
几个QQ群都不能解释的问题:自定义Exception的子类(子类继承Exception类,并未作任何修改),却不能捕捉原来Excepton能捕捉的异常,为什么?
package com.demo;



public class Demo1 {

/**
* @param args
* @throws Exception 
*/
public static void main(String[] args) 
{
// TODO Auto-generated method stub
Demo demo=new Demo();
try{

demo.test();

}catch( MyException e){ // 只想知道这个地方,为什么MyException不能代替Exception
// MyException是直接继承Exception类,并未作任何修改,却不能捕捉原来Excepton能捕捉的异常,为什么?

System.out.println("捕捉自定义异常成功");


}finally{
//demo.show();
}
}

}
class Demo 
{
int i=0;
public void test() throws MyException
{
System.out.println(1/0);

}
}

//定义异常类
class MyException extends Exception
{
public MyException(){

super();

}
}



补充: 
  只求高手给出原因,我只想知道原因,如果可以简单该,应该怎么改?要改动很多就算了!
   
  因为想知道 如代码中解释那行 所提出的问题的原因。

  希望有人知道,CSDN应该强人多的

------解决方案--------------------------------------------------------
代码修改如下:
Java code
public class Demo01 {    /**     * @param args     * @throws Exception     */    public static void main(String[] args) {        // TODO Auto-generated method stub        Demo demo = new Demo();        try{            demo.test();        }catch(MyException me){            System.out.println(me.getMessage());            System.out.println("捕捉自定义异常成功");        }                }}class Demo {    int i = 0;    public void test() throws MyException{        try{            System.out.println(1 / 0);        }catch(Exception me){            throw new MyException("出现了自定义异常");        }    }}// 定义异常类class MyException extends Exception {    public MyException(String mesg) {        super(mesg);    }}
  相关解决方案