java-异常问题
我在编译代码时遇到了一些问题 这是一个使用类值将文本保存到文件的方法java-异常问题,java,exception,Java,Exception,我在编译代码时遇到了一些问题 这是一个使用类值将文本保存到文件的方法 public void saveEventsToFile() throws Exception { String tmp = getEventsAsString(); value = Value.makeString(tmp); Value.saveFile(value, "\\events" + "\\" + "YEAR" + "\\" + months[MONTH] + "\\" + DAY); }
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();
}
});
如果我在执行的操作上添加抛出异常,我的代码将无法编译,如果没有它,我将在arentPanel.selectedBox.saveEventsToFile()上出现“Unhandled Exception”错误;线
我怎样才能编译这个?我对例外情况没有多少经验 正如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();
}
});
首先,如果您不使用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);
}
}
这里要记住的是,您应该避免捕捉异常,因为您可能捕捉到比预期更多的异常。这一点很重要,因为在某些异常情况下,应用程序可以在其他情况下继续,只需关闭即可。如果保存为case,则可能会出现异常,用户可以采取措施重试该操作。如果应用程序必须关闭,因为无法再运行,请使用未经检查的(运行时)异常进行更改 在eclipse中,将鼠标悬停在错误线上,然后单击“用try-catch环绕”选项,就成功了。但还有一个问题,当我没有指定某个路径时,文件会直接保存在项目文件夹中。但是,当我在项目文件夹中指定路径时(例如“\\events”+“\\\”+“YEAR”+“\\\”+months[月]+“\\”+天),我会得到一个“文件未找到异常”。如何指定此路径?请将答案标记为正确,并为此问题打开一个新问题。nvm我找到了:)