2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

もっとワイの間違いを教えてくれ (Ruby3.2のerror_highlightを試す)

Last updated at Posted at 2023-03-28

はじめ

ErrorHighlight
TypeErrorとArgumentErrorの引数を下線表示するようになりました

引用: https://www.ruby-lang.org/ja/news/2022/12/25/ruby-3-2-0-released/

Ruby 3.1から導入された errror_hightligt はエラー箇所を下線部で教えてくれるというものです。
そちらの紹介については以下で紹介しています

今回はそれがRuby 3.2でどう変わったか実際に動かしながら見ていこうと思います

「ワイの間違いをもっと教えてもらわないとな (〇-〇ヽ)クイッ」 ← ハナから間違いしようとすな!

動かしてみる

今回から下線部表示で該当のエラーを表示してくれるようになったエラーは以下の2種類のようです

  • TypeError
  • ArgumentError

今回動作確認するRubyのバージョンは3.2.1です

TypeError

sample_2.rb
1 + '2'

型の違うそれぞれの値を加算した場合のエラーが以下の通りになりました

従来(Ruby3.1) のとき

$ ruby sample_2.rb 
sample_2.rb:1:in `+': String can't be coerced into Integer (TypeError)
        from sample_2.rb:1:in `<main>'

Ruby3.2 のとき

$ ruby sample_2.rb
sample_2.rb:1:in `+': String can't be coerced into Integer (TypeError)

1 + '2'
    ^^^
        from sample_2.rb:1:in `<main>'

ArgumentError

sample_3.rb
10.to_s(2,2)

to_s(args) によって引数の進数に変換しつつstring型に変換するメソッドですが、引数を上記の通り過剰に入れて見た場合のエラー内容が以下の通りになりました

従来(Ruby3.1) のとき

$ ruby sample_3.rb
sample_3.rb:1:in `to_s': wrong number of arguments (given 2, expected 0..1) (ArgumentError)
        from sample_3.rb:1:in `<main>'

Ruby3.2 のとき

$ ruby sample_3.rb
ruby sample_3.rb 
sample_3.rb:1:in `to_s': wrong number of arguments (given 2, expected 0..1) (ArgumentError)

10.to_s(2,2)
        ^^^
        from sample_3.rb:1:in `<main>'

その他

ArgumentError もハイライト表示できるようになりましたが、全てが網羅できているようではなさそうでした。定義したメソッドなどに対してのArgumentErrorなどは既存のものと変わらない表示でした

sample_4.rb
def hoge(n)
  puts n
end

hoge(5,2)

従来(Ruby3.1) のとき

$ ruby sample_4.rb
sample_4.rb:1:in `hoge': wrong number of arguments (given 2, expected 1) (ArgumentError)
        from sample_4.rb:5:in `<main>'

Ruby3.2 のとき

$ ruby sample_4.rb
sample_4.rb:1:in `hoge': wrong number of arguments (given 2, expected 1) (ArgumentError)
        from sample_4.rb:5:in `<main>'

最後に

今回はRuby3.2によって新しく追加されたエラーのハイライト表示について紹介しました
今回の動作確認する上で使用したコードは以下で公開しておきます!

1_error_highlight

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?