【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の解析中に不正な形式の行が見つかった際に、その原因となった行番号を整数で返します。