Я пытаюсь понять исключения в 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