不知道楼主怎么想的!
因为你调用的是show1方法
而show1的异常是通过不带参数的构造函数构造的 public MyExceptions() {
super("c");
}所以就会输出C了

解决方案 »

  1.   

    把throw new MyExceptions()改成throw new MyExceptions(s)应该就可以了
      

  2.   

    楼主认为应该输出什么呢?
    throw new MyExceptions();
    这句话会调用MyExceptions类的不带参数的构造函数创建一个对象:
    public MyExceptions(){
        super("c");
    }然后将这个对象传递给e
    catch(NumberFormatException e){
        System.out.println(e.getMessage());
    }
    打印的当然就是c了
      

  3.   

    当然会输入C了,因为你调用了show1()方法,并且参数传递了null,那么在执行System.out.println(Integer.parseInt(s));这个语句的时候肯定会抛出异常,当你捕获到该异常后,throw了MyExceptions,那么接下来必然会走到你的MyExceptions()这个方法内,自然就输出C了
      

  4.   

    这里的throw new MyExceptions();new的是无参构造函数,结果当然是c啦