以前はJavaで多大な作業をしていましたが、今はRubyにもっと取り組んでいます。私は理解できない1つのことは、Java "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例外が発生するはずです。
result = Base.find(blah) #returning no result
result.my_advanced_functionality(42)
結果はnilであり、nilのオブジェクトは、関数my_advanced_functionalityを定義していないので、あなたはNoMethodError私が学ぶように私にはかなりの量を見るものの
一つを買ってあげるあなたが誤ってIDと呼ばれるている」でありますnilのオブジェクトIDが4であるため
例外の階層構造には、私が一度も使ったことのないArgumentError例外がありますが、それはあなたに役立つようです。
2
はルビーにNULLポインタはありませんが、あなたがしたい場合、あなたはまだ例外を発生させることができます。
>> class NullPointerException < Exception; end => nil >> raise NullPointerException NullPointerException: NullPointerException from (irb):2
関連する問題
- 1. prestodb JDBCインタープリタがNullPointerExceptionを発生させる
- 2. Spring Bootを1.3.7から1.4.0にアップグレードし、AuthenticatorBase.getJaspicProviderでNullPointerExceptionを発生させます。
- 3. アクティビティでNullPointerExceptionが発生しました
- 4. サービスでNullpointerExceptionが発生しました
- 5. SoundManagerで時折NullPointerExceptionが発生する
- 6. AdWhirlLayoutのrotateThreadedDelayedでNullPointerExceptionが発生する
- 7. ProgressDialogでNullPointerExceptionが発生しました
- 8. SpringインテグレーションでnullPointerExceptionが発生する
- 9. SQLiteDatabseでNullPointerExceptionが発生する
- 10. RESTでNullPointerExceptionが発生しました
- 11. Context.getDrawable内でNullPointerExceptionが発生する
- 12. ArrayAdapterでnullPointerExceptionが発生しました
- 13. サービススプリングでNullPointerExceptionが発生する
- 14. Scala NullPointerExceptionが発生しない限り
- 15. スイングの.getText()でエラーが発生し、JavaでNullPointerExceptionが発生する
- 16. EJBのCDIインジェクションによりNullPointerExceptionが発生する
- 17. Gson&SharedPreferencesによってNullPointerExceptionが発生する
- 18. Java - varargsによってNullPointerExceptionが発生する
- 19. AndroidのGoogleマップユーティリティ - onClusterClickによりNullPointerExceptionエラーが発生する
- 20. 春のセキュリティログアウトによりNullPointerExceptionが発生する
- 21. sessionFactory.getCurrentSession()によってNullPointerExceptionが発生する
- 22. `autoload`はエラーを発生させますが、` require`は(ruby)を返しません。
- 23. Rubyで例外を発生させずに現在のスタックトレースを取得
- 24. EquinoxでバンドルをプログラムでインストールしようとするとnullPointerExceptionが発生する
- 25. ASP.Net - ポストバックを発生させずにサーバー側でボタンのイベントを発生させよう
- 26. FileProvider(Android)でURIを取得しようとするとNullPointerExceptionが発生する
- 27. Eclipseでressourceを使用しようとするとNullPointerExceptionが発生する
- 28. プログラムでtableRowを追加しようとするとnullPointerExceptionが発生する
- 29. XMLAdapterを追加すると、JAXBContext.newInstanceメソッドでNullPointerExceptionが発生する
- 30. minimizeJar = trueでシェードを使用するとNullPointerExceptionが発生する
1ライナー:raise class NullPointerException <例外>このようなことができます。自己;終わり – klochner