2012-12-14 4 views
0

때로는이 오류가 발생하며 프로그램을 완전히 종료하지 않고 Rails가 오류를 건너 뛰도록하고 싶습니다. 이것을 할 수있는 좋은 방법이 있습니까? 그렇게되면 난 그냥 wikimedia_user가 전무로 설정하려면,정의되지 않은 메소드 'first'for nil : NilClass

NoMethodError (undefined method `first' for nil:NilClass) 

:

<% wiki = MediaWiki.new(:domain => 'commons.wikimedia.org') %> 
<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") %> 

두 번째 줄이 오류가 발생합니다

다음은 내 코드입니다. 나는 .find의 끝에 .inspect?을 추가하려고 시도했으나 오류는 모두 발생합니다. 이것을 할 수있는 방법이 있습니까?

답변

2

예외를 억제하고 nil을 반환하려는 행과 동일한 줄에 rescue nil을 끝에 추가하십시오.

<% wikimedia_user = wiki.find("File:Samuel_L_Jackson_as_Nick_Fury.jpg") rescue nil %> 

참고 : 이것은 일반적으로 그 구조에 의해 잡힐 것이다 라인에서 발생한 예외의 일종으로, 좋은 연습으로 간주되지 않습니다. 귀하의 경우에는 큰 문제는 아니지만 앞으로 나아갈 것을 명심하십시오.