[ruby] 시작 및 종료 블록없이 Ruby에서 구조를 사용하는 방법

구출 시작의 표준 기술을 알고 있습니다.

구조 블록을 단독으로 사용하는 방법은 무엇입니까?

어떻게 작동하며 어떤 코드가 모니터링되고 있는지 어떻게 알 수 있습니까?



답변

“def”메소드는 “begin”문으로 사용할 수 있습니다.

def foo
  ...
rescue
  ...
end


답변

인라인으로 복구 할 수도 있습니다.

1 + "str" rescue "EXCEPTION!"

“EXCEPTION!”을 출력합니다. ‘문자열을 Fixnum으로 강제 할 수 없기 때문에’


답변

ActiveRecord 유효성 검사와 함께 def / rescue 조합을 많이 사용하고 있습니다.

def create
   @person = Person.new(params[:person])
   @person.save!
   redirect_to @person
rescue ActiveRecord::RecordInvalid
   render :action => :new
end

나는 이것이 매우 간결한 코드라고 생각합니다!


답변

예:

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

여기에서 defA와 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


답변