# Система исключений Ruby begin # код под защитой raise raise "bad mp3 encoding" raise InterfaceException, "Keyboard failure", caller raise ArgumentError, "Name too big", caller[1..-1] rescue RuntimeError => e # обрабатываем конкретный тип ошибок # напечатаем сообщение об ошибке puts e rescue # можно писать rescue => e чтобы получить объект исключения # обрабатываем все исключения else # сработает, если исключений не было ensure # сработает в любом случае end * В caller помещается стек вызова. * Конструкция caller[1..-1] удаляет 2 позиции из стека вызова при обработке исключения
Ruby Справочник v0.05 © 2007-2024 Igor Salnikov aka SunDoctor