Тема: Власні повідомлення про помилки(виключення) на їх обробка
Всім доброго дня. Сподіваюсь ви мені підкажете як оброблювати виключення програми.
І так:
Я читаю документ  *.ODT 
    #!/usr/bin/env ruby
    require 'zip'
    ContentXML = 'content.xml'
    
    odtfile = ARGF.argv[0]
    begin
        p "Read file: " + odtfile
        p Zip::File.open(odtfile).read(ContentXML)
    rescue StandardError => e
        p e
    endУ випадку помилки буде від ображено стандартне програмне повідомлення (File not found, context.xml not presnt, ну і т.д.) Але як можна зробити, щоб показувалися власні повідомлення
    p 'File name expected'
    p 'File not found'
    p 'Incorrect odt document (Content.xml not present)'    
І можливо, при якомусь конкретному виключенні виконати додаткові дії. Справа в тому, що будь-яка помилка потрапить в цей обробник. Єдина інформація, яку я можу взнати — опис виключення.
На https://www.rubydoc.info/gems/rubyzip/1.2.1/Zip/Error Дуже поганий опис. Є згадка про класи виключень, але ні слова про те, коли якому класу буде належати дане виключення.
Експеримент показав що
    rescue StandardError => e
        puts e.class.name
    endВиключення класу **Zip::Error** якщо файл не знайдено, або це не архів, і **Errno::ENOENT** якщо відсутній content.xml
Можна зробити так
    rescue  Zip::Error => e
        p 'File not found'
    rescue Errno::ENOENT => e
        p 'Incorrect ODT file'
    endАле як на мене,це не зовсім вірний підхід.


 )
 )