另写一个函数
public void my_method(ActionEvent e) throws IOException{
  ……………      
}
在actionPerformed(ActionEvent e){
  my_method(e);
}

解决方案 »

  1.   

    不对吧,如果my_method(ActionEvent e)抛出一个IOExeception,你必须在actionPerformed(ActionEvent e)当中就做出TRY CATCH处理吧?当你重写actionPerformed(ActionEvent e)时,要加:
    public void actionPerformed(ActionEvent a) {
    .....
    .....
    try{
                            my_method(ActionEvent e);
    ....
    ....
    }catch(Exception e){
    writeMessage(e.getMessage());
    }
    }
      

  2.   

    重写方法不可以放大Exeception。所以,你的actionPerformed方法一定不可以抛出IOExeception的。
      

  3.   

    那讨厌了,如果我要通过actionPerformed得到相关的东西去写到文件里不是就不可能了吗?
      

  4.   

    不是因为actionPerformed不可以throw IOException, 任何方法都可以throw Exception.而是因为你的代码中所有可能出现违例的地方都被你用Exception捕捉到了。
    methodName() throws XXXException的意思是这个方法声明它对可能产生的XXXException不做任何处理,让调用它的方法自行解决。而在你的代码中IOException已经被catch(Exception)搞定了
      

  5.   

    整个类加一个Exception成员不就行了?在writeMessage出现异常时存入该成员中即可。
      

  6.   

    不是因为actionPerformed不可以throw IOException, 任何方法都可以throw Exception.而是因为你的代码中所有可能出现违例的地方都被你用Exception捕捉到了。
    methodName() throws XXXException的意思是这个方法声明它对可能产生的XXXException不做任何处理,让调用它的方法自行解决。而在你的代码中IOException已经被catch(Exception)搞定了
    ----------------------------------------------同意!
      

  7.   

    她的actionPerformed方法是继承父类重写的,而继承父类中的方法是不可以放大Exception的呀,而她在actionPerformed方法中对IOException做出处理的话就没问题了。
      

  8.   

    不用讨论了,我找到最好的解决方法了,只要把try,catchIOExcetion套到out写文件和out的close上面去就行了,感谢上面的同人给我的提点;但out.writeBytes(message);有些,怪就是当getmessage只有1句信息时被写入txt,而如果得到1长串时,txt里就是空的,而getmessage是string类型的呀,我该怎么办?
      

  9.   

    你还是好好去看看io吧,是不是该用out.writeBytes(message)
      

  10.   

    那问一下如过要把e.getmessage写到txt里该怎么写,我想代码应该不长,能列出看看吗?希望您已经经过校验
      

  11.   

    我觉得e.getmessage不是一句信息的时候返回的不是一个string对象,而是string数组,所以我觉得你这样做不对,out.writeBytes(e.getmessage)只可以处理string对象吧?
    我觉得是不是应该这样
    string s[]=e.getmessage();
    for(i=0;i<=s.lenth;i++)
    {
     writeMessage(s[i]);
    }
    这样会好点?
    我没试过,你自己试吧