Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【Ruby3.x】CSV::MalformedCSVError::lineno()メソッドの使い方

linenoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

linenoメソッドは、Rubyの CSV ライブラリを使ってCSV形式のデータ処理を行っている最中に、データが不正な形式であるために CSV::MalformedCSVError というエラーが発生した場合、そのエラーが発生した正確な行番号を取得するために実行するメソッドです。

システムエンジニアを目指す方にとって、プログラムがエラーを起こした際に、その原因を素早く特定し解決することは非常に大切なスキルです。CSVファイルを扱うプログラムでは、データの内容がCSVのルール(例えば、引用符の正しい使い方や区切り文字の配置など)に従っていない場合によく CSV::MalformedCSVError が発生します。

この lineno メソッドは、発生した CSV::MalformedCSVError オブジェクトから呼び出すことで、具体的にCSVファイルの何行目でデータ形式の誤りが起きたのかを、整数値として知ることができます。例えば、もしCSVファイルの10行目で不正なデータが見つかった場合、lineno メソッドは 10 を返します。これにより、エラーメッセージに「10行目に問題があります」といった具体的な情報を追加したり、ログに記録して後で調査したりすることが容易になります。プログラムのデバッグ作業を効率化し、安定したシステムを構築するために、エラー発生時の詳細な情報提供は不可欠であり、lineno メソッドはそのような場面で非常に役立つ機能と言えます。

構文(syntax)

1require 'csv'
2
3begin
4  CSV.parse("col1,col2\n\"val1,val2\n", headers: false)
5rescue CSV::MalformedCSVError => e
6  e.lineno
7end

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

CSVの解析中に不正な形式の行が見つかった際に、その原因となった行番号を整数で返します。

関連コンテンツ