【发布时间】:2017-06-07 01:22:53
【问题描述】:
如果遇到任何错误,我认为以下代码会停止,句号。
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 移到循环中吗?这包括它吗?
【问题讨论】:
-
更改
catch (Exception sqlEx) {以对某些Exceptions执行某些操作 在某些代码周围移动 try/catch -
@ScaryWombat 你到底是什么意思?我不确定所有这些“确定”是什么
-
查看我的回答以获得更多帮助
-
您不必将所有内容都包装到一个巨大的 try/catch 块中。您总是可以进行更精细的异常处理。将
createNewFile和writeNext包装到它们自己的 try/catch 块中。 -
@tsolakp 那么嵌套的 try/catch 块?外一抛IOException,内一抛异常?
标签: java file csv error-handling opencsv