我需要在我的程序中的邏輯輸入。 我的程序的邏輯基本上是這樣的:如何在發生輸出異常時保留程序的測試結果?
- Ask user to select input file;
-- If exception --> error message, exit program;
-- Otherwise --> continue program, perform tests;
- After tests have been completed, ask user to select output file;
-- If exception --> error message, exit program;
-- Otherwise --> save results to file, exit program;
的問題是,如果用戶指定一個無效的輸出文件,所有的測試結果都將丟失,該程序將終止。如果用戶選擇了無效的輸出文件,我想給用戶第二次嘗試選擇輸出文件。
我的輸出碼目前看起來是這樣的:
public void printToFile() {
JFileChooser outputFile;
File outFileName;
outputFile = new JFileChooser();
outputFile.showSaveDialog(null);
outFileName = outputFile.getSelectedFile();
try {
PrintStream outFile = new PrintStream(outFileName);
// print results to file
} catch (Exception e) {
System.out.print("Can't be saved to this file! \n");
System.exit(0); // exit program
}
}
我能想到的是唯一的解決方案,以取代catch
塊用下面的代碼:
catch (Exception e) {
System.out.print("Can't be saved to this file! \n");
printToFile();
}
然而,如果用戶沒有按不明白出了什麼問題,他可能會一遍又一遍地選擇相同的文件,從而產生一種(某種)無限循環。 有沒有這種方法的替代方法,或防止循環的方法?或者,我想出的方法是什麼?
爲什麼不使用while循環與閉鎖復發如果條件找不到文件而不是System.exit()? – user991710