几个QQ群都不能解释的有关问题:自定义Exception的子类(子类继承Exception类,并未作任何修改),却不能捕捉原来Excepton能捕捉的错误,为什么
几个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();
}
}
补充:
只求高手给出原因,我只想知道原因,如果可以简单该,应该怎么改?要改动很多就算了!
因为想知道 如代码中解释那行 所提出的问题的原因。
希望有人知道,****应该强人多的
------解决方案--------------------
代码修改如下:
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();
}
}
补充:
只求高手给出原因,我只想知道原因,如果可以简单该,应该怎么改?要改动很多就算了!
因为想知道 如代码中解释那行 所提出的问题的原因。
希望有人知道,****应该强人多的
------解决方案--------------------
代码修改如下:
- 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); } }