Исключения Ruby - Почему «иначе»?

Я пытаюсь понять исключения в Ruby, но я немного сбит с толку. В учебном пособии, которое я использую, говорится, что если возникает исключение, которое не соответствует ни одному из исключений, определенных операторами восстановления, вы можете использовать «else», чтобы его перехватить:

begin  
# -  
rescue OneTypeOfException  
# -  
rescue AnotherTypeOfException  
# -  
else  
# Other exceptions
ensure
# Always will be executed
end

Однако я также видел позже в учебном пособии « rescue "используется без указанного исключения:

begin
    file = open("/unexistant_file")
    if file
         puts "File opened successfully"
    end
rescue
    file = STDIN
end
print file, "==", STDIN, "\n"

Если вы можете это сделать, тогда мне когда-нибудь понадобится для использования else? Или я могу просто использовать обычное спасение в конце, как это?

begin  
# -  
rescue OneTypeOfException  
# -  
rescue AnotherTypeOfException  
# -  
rescue
# Other exceptions
ensure
# Always will be executed
end
50
задан Chris Jester-Young 2 December 2011 в 02:31
поделиться