답변:
"def"메소드는 "begin"문으로 사용할 수 있습니다.
def foo
...
rescue
...
end
do
/ end
블록 리터럴은 암시 적 예외 블록을 형성합니다.
rescue TypeError; rescue NameError
또는 예외 클래스를 쉼표로 구분할 수 있습니다. 예rescue TypeError, NameError
인라인으로 복구 할 수도 있습니다.
1 + "str" rescue "EXCEPTION!"
"EXCEPTION!"을 출력합니다. '문자열을 Fixnum으로 강제 할 수 없기 때문에'
StandardError
와 모든 하위 클래스를 구조하기 때문에 좋은 방법이 아닙니다. NameError
즉 , 코드의 오타도 오류를 일으키지 않습니다. thoughtbot.com/blog/don-t-inline-rescue-in- 참조 루비 .
예:
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
여기에서 def
A와 begin
문 :
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