我用Ruby阅读* .odt文档,所以:
#!/usr/bin/env ruby
require 'zip'
ContentXML = 'content.xml'
odtfile = ARGF.argv[0]
begin
puts "Read file: " + odtfile
puts Zip::File.open(odtfile).read(ContentXML)
rescue StandardError => e
puts e
end
此代码显示了每个或每个异常的错误消息:(找不到文件,错误的* .odt文件等)如何显示自定义错误消息? F.e。:
p 'File name expected'
p 'File not found'
p 'Incorrect odt document (Content.xml not present)'
也许,通过扩展程序,将会添加新的错误,例如“ Incorrect Content.xml”等。
我还想添加自定义处理程序以解决某种错误。
如何区分这种处理方式?
在https://www.rubydoc.info/gems/rubyzip/1.2.1/Zip/Error简短的错误说明中,我不了解错误类别。
实验中我发现了这一点。
rescue StandardError => e
puts e.class.name
end
如果没有退出文件,我得到 Zip :: Error ,如果文件不包含content.xml,我得到 Errno :: ENOENT
我可以这样做:
rescue Zip::Error => e
p 'File not found'
rescue Errno::ENOENT => e
p 'Incorrect ODT file'
end
这是学习每个错误的正确方法?