Java 无法在AbstractAction中使用IOException
我遇到了一个奇怪的问题。我需要导出一些文本到一个文件作为按下一个GUI按钮的结果。但是,我不能将IOException应用于事件调用的AbstractAction的actionPerformed方法。我不知道如何避开这件事 以下是导出类:Java 无法在AbstractAction中使用IOException,java,swing,export,ioexception,Java,Swing,Export,Ioexception,我遇到了一个奇怪的问题。我需要导出一些文本到一个文件作为按下一个GUI按钮的结果。但是,我不能将IOException应用于事件调用的AbstractAction的actionPerformed方法。我不知道如何避开这件事 以下是导出类: import java.awt.event.*; import java.lang.*; import java.util.*; import java.io.*; public class ExportRunner { public static vo
import java.awt.event.*;
import java.lang.*;
import java.util.*;
import java.io.*;
public class ExportRunner
{
public static void exportToFile(ArrayList<Locker> list) throws IOException
{
}
}
首先,您确定要重新抛出异常,还是处理异常和/或向用户显示消息更好 选项1:重新抛出异常(我认为很难看): 选项2:捕获并处理它:
首先,您确定要重新抛出异常,还是处理异常和/或向用户显示消息更好 选项1:重新抛出异常(我认为很难看): 选项2:捕获并处理它:
我通常会将“错误处理程序”传递给action类,允许将处理显示/报告错误的责任委托给应用程序的另一部分 类似于
public interface ErrorListener {
public void errorOccurred(String msg, Exception exp);
}
然后你可以把它传递给你的行动
public class Export extends AbstractAction
{
private ErrorListener errorHandler;
public Export(ErrorListener errorHandler)
{
super("Export");
this.errorHandler = errorHandler;
}
public void actionPerformed(ActionEvent e)
{
try {
ExportRunner.exportToFile(list);
} catch (IOException exp) {
errorHandler.errorOccurred("Failed to export file", exp);
}
}
}
显然,在某些地方,您需要一个实现来处理回调;)
您可能想看看,以获取更多信息,我通常会将“错误处理程序”传递给action类,该类允许将处理显示/报告错误的责任委托给应用程序的另一部分 类似于
public interface ErrorListener {
public void errorOccurred(String msg, Exception exp);
}
然后你可以把它传递给你的行动
public class Export extends AbstractAction
{
private ErrorListener errorHandler;
public Export(ErrorListener errorHandler)
{
super("Export");
this.errorHandler = errorHandler;
}
public void actionPerformed(ActionEvent e)
{
try {
ExportRunner.exportToFile(list);
} catch (IOException exp) {
errorHandler.errorOccurred("Failed to export file", exp);
}
}
}
显然,在某些地方,您需要一个实现来处理回调;)
您可能想看看,了解更多信息通常,我提供一个“错误管理器”,其职责是处理此类情况。它是一个基本接口,具有类似于
erroroccurrend
的方法,通常允许调用传回某种消息以及异常。另外,不要用长时间运行的任务或阻止调用(如IO;)来阻止事件调度线程和甘布一样,我几乎不知道异常是如何工作的。我只是想在导出类上绕过IOException要求。通常,我提供一个“错误管理器”,其职责是处理此类情况。它是一个基本接口,具有类似于erroroccurrend
的方法,通常允许调用传回某种消息以及异常。另外,不要用长时间运行的任务或阻止调用(如IO;)来阻止事件调度线程和甘布一样,我几乎不知道异常是如何工作的。我只是想在导出类上绕过IOException要求。考虑到这是一个简单的、导出一个小文本文件的小程序,而且我现在不想陷入异常的世界,我将使用上面的示例。我想我最终会明白为什么它会起作用。谢谢你的帮助!考虑到这是一个简单的、导出一个小文本文件的小程序,而且我现在不想陷入异常的世界,我将使用上面的示例。我想我最终会明白为什么它会起作用。谢谢你的帮助!
public class Export extends AbstractAction
{
private ErrorListener errorHandler;
public Export(ErrorListener errorHandler)
{
super("Export");
this.errorHandler = errorHandler;
}
public void actionPerformed(ActionEvent e)
{
try {
ExportRunner.exportToFile(list);
} catch (IOException exp) {
errorHandler.errorOccurred("Failed to export file", exp);
}
}
}