Antworten:
Eine Methode "def" kann als "begin" -Anweisung dienen:
def foo
...
rescue
...
end
do
/ end
Blockliterale implizite Ausnahmeblöcke.
rescue TypeError; rescue NameError
- oder Sie können die Ausnahmeklassen durch Kommas trennen, z. B.rescue TypeError, NameError
Sie können auch inline retten:
1 + "str" rescue "EXCEPTION!"
druckt "AUSNAHME!" da 'String kann nicht in Fixnum gezwungen werden'
StandardError
alle ihre Unterklassen rettet , wie z. B. NameError
- dass selbst ein Tippfehler in Ihrem Code keinen Fehler auslöst . Sieheoughtbot.com/blog/don-t-inline-rescue-in- Rubin .
Beispiel:
begin
# something which might raise an exception
rescue SomeExceptionClass => some_variable
# code that deals with some exception
ensure
# ensure that this code always runs
end
Hier def
als begin
Aussage:
def
# something which might raise an exception
rescue SomeExceptionClass => some_variable
# code that deals with some exception
ensure
# ensure that this code always runs
end