你在异常的构造函数中没有调用父类的构造函数
加上super(content)

解决方案 »

  1.   

    加上之后真的可以了,我想问中间的content是怎么回事?为什么还要调用父类的构造函数?
      

  2.   

    你直接throw new RuntimeException("字符串" + str +"中含有非法字符!");就行了,没必要声明抛出以及定义异常类。
    你这个报错应该是你的异常类没有调用父类的构造方法: public MyException(){
         super();
     }
     public MyException(String msg){
         super(msg);
     }
      

  3.   

    想明白了,为了输出  字符串 Hell!MR!中含有非法字符!
    改成了public static void main(String[] args) {
    String str1="HellWorld";
    String str2="Hell!MR!";
    try{
    check(str1); //调用check()方法
    check(str2); //执行该行代码时,抛出异常
    }catch(MyException e){                              //捕获MyException异常
    System.out.println(e.getContent()); //输出异常描述信息
    }