이전에는 Java로 많은 작업을 했었고 이제는 Ruby로 더 많은 작업을하고 있습니다. 내가 알 수없는 한 가지는 자바 "NullPointerException"에 해당하는 루비는 무엇입니까? 나는 함수를 입력 할 때 변수를 테스트하기를 원한다. 만약 그것들이 nil이라면이 예외 유형을 발생시키고 자한다. 이 유형의 예외를 발생시키는 특정 루비 오류 클래스가 있습니까?Ruby에서 "NullPointerException"을 발생 시키십시오
2
A
답변
8
상황에 맞게 수하면 ArgumentError 올리기. 당신은 이런 일을 할 수있는 :
def i_dont_take_nils_from_nobody x
raise ArgumentError.new "You gave me a nil!" if x.nil?
puts "thanks for the #{x}"
end
i_dont_take_nils_from_nobody nil
#=> ArgumentError: You gave me a nil!
i_dont_take_nils_from_nobody 1
#=> thanks for the 1
5
예외 목록에 그런 내용이 없습니다.
nil은 개체이며 항목이 nil이 아닌지 확인하기 위해 검사 할 수 있습니다.
result = Base.find(blah)
result.nil?
nil을 무기 호에 메소드를 호출하지 않습니다 (객체)가 당신에게 NoMethodError 예외를 제공해야합니다. 결과는 무기 호이며, 전무 오브젝트가 기능 my_advanced_functionality를 정의하지 않기 때문에
result = Base.find(blah) #returning no result
result.my_advanced_functionality(42)
, 당신이 NoMethodError 내가 배우로서 내가 상당한 양의 볼 것들의
하나를 얻을 수 있습니다 것은 당신이 실수로 ID를 불렀다 "입니다 nil의 객체 ID는 4이므로
예외 상황에는 예외적 인 ArgumentError 예외가 있습니다.이 예외는 ArgexError 예외를 가지고 있지만 사용하지는 못했지만 서비스를 제공하는 것처럼 보입니다.
2
루비에서 널 포인터가 아니지만, 당신이 원하는 경우에 당신은 여전히 예외를 발생시킬 수 있습니다
>> class NullPointerException < Exception; end => nil >> raise NullPointerException NullPointerException: NullPointerException from (irb):2
관련 문제
- 1. ContextMenuClosing 이벤트를 수동으로 발생 시키십시오.
- 2. 멀티 프로젝트에서 커스텀 이벤트를 발생 시키십시오.
- 3. 단추를 누르지 않고 Textbox.TextChange 이벤트를 발생 시키십시오.
- 4. 컨트롤에서 LostFocus 이벤트를 수동으로 발생 시키십시오.
- 5. 다시 컴파일하지 않고 PostgreSQL의 NAMEDATALEN을 발생 시키십시오.
- 6. Java에서 NullPointerException을 처리하는 방법
- 7. 이것이 NullPointerException을 생성합니까?
- 8. addView가 NullPointerException을 발생시킵니다
- 9. Netbeans : NullPointerException을 어떻게 중단합니까?
- 10. Iterator 및 NullPointerException을 설정하십시오.
- 11. 왜 Android가 NullPointerException을 throw합니까?
- 12. WebappClassLoader.findResources에서 NullPointerException을 피하는 방법?
- 13. 응용 프로그램에서 NullPointerException을 throw합니다.
- 14. FileInputStream이 NullPointerException을 throw합니다.
- 15. 왜이 Android FileOutputStream이 NullPointerException을 던집니까?
- 16. JUnit 러너가 java.io.Writer에서 NullPointerException을 가져옵니다.
- 17. 어떻게 VK_ 문제와 NullPointerException을 수정합니까?
- 18. 종료하고 계속 작동 시키십시오.
- 19. index.php를 디렉토리로 동작 시키십시오.
- 20. TSQL에서 uniqueidentifier를 증가 시키십시오.
- 21. div를 속성으로 노출 시키십시오.
- 22. Ruby에서 문자열의 문자 찾기
- 23. 입력 또는 탭을 누르지 않고 TextBox에 텍스트를 입력하여 자동 포스트 백을 발생 시키십시오.
- 24. 의존성 주입이 Spring MVC에서 NullPointerException을 던졌습니다
- 25. 이 코드가 NullPointerException을 던지는 것은 표준적인 동작입니까?
- 26. setOnClickListener는 for 루프 내에서만 NullPointerException을 발생시킵니다. 왜?
- 27. 왜 아이콘 처리 코드가 NullPointerException을 던집니까?
- 28. 몇 시간 후 처리기가 NullPointerException을 던지기
- 29. validate() 트리가 L & F 변경시 NullPointerException을 throw합니까?
- 30. UIImage를 SPin과 같이 회전 시키십시오.
1 - 라이너 : 클래스 NullPointerException이 <예외를 발생; 본인; 종료 – klochner