我在编写代码时遇到了一些麻烦。
这是一个使用类Value将文本保存到文件
的方法public void saveEventsToFile() throws Exception {
String tmp = getEventsAsString();
value = Value.makeString(tmp);
Value.saveFile(value, "\\events" + "\\" + "YEAR" + "\\" + months[MONTH] + "\\" + DAY);
}
这是另一个对象的构造函数的一部分。我在一个按钮上有一个actionlistener(OK),当按下该按钮时,我想调用saveEventsToFile方法。
OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int h, m;
h = (Integer) hourSpinner.getValue();
m = (Integer) minuteSpinner.getValue();
parentPanel.createNewEvent(parentPanel.selectedBox, parentWindow, textPane.getText(), h, m);
parentPanel.selectedBox.saveEventsToFile();
dispose();
}
});
如果我在actionPerformed上添加throws Exception,我的代码无法编译,如果没有它,我会在arentPanel.selectedBox.saveEventsToFile()上出现“Unhandled exception”错误;线
我怎么能让这个编译?我没有太多的例外经验。
答案 0 :(得分:1)
正如donfuxx所说:
OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int h, m;
h = (Integer) hourSpinner.getValue();
m = (Integer) minuteSpinner.getValue();
parentPanel.createNewEvent(parentPanel.selectedBox, parentWindow, textPane.getText(), h, m);
try {
parentPanel.selectedBox.saveEventsToFile();
} catch (ExeptionThaIsThrownBySaveEventsMethod e) {
// display error
}
dispose();
}
});
答案 1 :(得分:0)
首先,如果您不使用ActionEvent的任何特定元素,请在您拥有的类的主体中移动方法的逻辑。
OK.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Integer h = (Integer) hourSpinner.getValue());
Integer m = (Integer) minuteSpinner.getValue();
saveEventsToFile(h,m)
dispose();
}
});
private void saveEventsToFile(Integer hour, Integer minute) {
if(hour == null || minute == null) {
throw new IllegalArgumentException("The parameters must not be null.")
}
parentPanel.createNewEvent(parentPanel.selectedBox, parentWindow, textPane.getText(), h,m);
try {
parentPanel.selectedBox.saveEventsToFile();
}catch(ExeptionThaIsThrownBySaveEventsMethod e) {
throw new IllegalStateException(e);
}
}
这里要记住的事情是你应该避免捕捉异常,因为你可能会捕获超过预期。这很重要,因为在一些例外情况下,应用程序可以继续执行其他只需要关闭。如果保存了一个例外,那么用户可以做一些事情来重试该操作。如果应用程序必须关闭而无法再操作,则更改使用未经检查(运行时)异常。