我有以下代码:
begin
@output_file = File.open("output.txt", "w")
File.read(@input_file).each_line do |line|
taxify_line(line)
end
rescue => e
p "Smz went wrong..."
end
@output_file.write("Last line of output")
@output_file.close unless @output_file.nil?
Run Code Online (Sandbox Code Playgroud)
确保无论何时捕获异常,两个文件(@input_file和@output_file)都关闭的正确方法是什么?
rescue子句应该在begin..end块内.还有,令人惊讶的是,ensure条款完全符合您的想法
begin
@output_file = File.open("output.txt", "w")
File.read(@input_file).each_line do |line|
taxify_line(line)
end
rescue => e
p "Smz went wrong..."
ensure
@output_file.write("Last line of output")
@output_file.close unless @output_file.nil?
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |