我认为以下代码会在遇到任何错误(句号)时停止。
public static void exportDatapointsToCSV(List<Datapoint> datapointList, File exportDir) {
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd, yyyy (h:mm a)", Locale.US);
File file = new File(exportDir, "my_datapoints.csv");
try {
file.createNewFile();
CSVWriter csvWrite = new CSVWriter(new FileWriter(file));
csvWrite.writeNext(new String[]{"DATAPOINT_LABEL", "VALUE", "TIMESTAMP", "TIMESTAMP_FORMATTED", "NOTE"});
for (Datapoint datapoint : datapointList) {
String arrStr[] = new String[]{
datapoint.getLabel(),
datapoint.getValue() + "",
datapoint.getTimestamp() + "",
sdf.format(new Date(datapoint.getTimestamp())) + "",
datapoint.getNote()
};
csvWrite.writeNext(arrStr);
}
csvWrite.close();
}
catch (Exception sqlEx) {
Log.e(LOG_TAG, sqlEx.getMessage(), sqlEx);
}
}
但我希望它:
我是否仅将try/catch移入循环?可以解决吗?
最佳答案
您正在捕获的异常是所有异常的祖父-如果查看javadocs,您会看到构造函数new FileWriter(file)
抛出了IOException
因此,如果您要采取某些措施,例如记录并退出(如果失败),然后尝试
CSVWriter csvWrite = null;
try {
csvWrite = new CSVWriter(new FileWriter(file));
} catch (IOException ex) {
Log.e(LOG_TAG, ex.getMessage(), ex);
return; // or System.exit or what either
}
关于java - 如何更改此设置,使它无法实现我想要的方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44402051/