我觉得将try-catch逻辑嵌套在catch块中并不理想/也不是干净的代码,但是我不确定如何重构代码,例如:
当找不到文件(捕获FileNotFoundExeption)时,我的程序将创建一个新文件(生成IOException),而不会嵌套try捕获。
function f(
a::Union{R,Complex{R}},
x::Union{R,Complex{R}}
)::??? where {R<:Real}
return g(R(2), a, 1, x)
end
答案 0 :(得分:0)
理想情况下,在读取文件之前,应检查文件的存在。遵循以下原则:
File dukeTxt = new File(Duke.filePath);
if (dukeTxt.exist()) {
try { dukeTxt.createNewFile(); }
catch(IOException ioe) {...}
}
try { storage.readFromTasksFileToList(tasks); }
catch (FileNotFoundException fnfe) {...}