エラーが発生するかどうかに応じて、以下pcall(function)
が返される場合があります。
成功: true と関数の戻り値。
失敗: false とエラー。
私の場合、テーブルを返す関数を呼び出しているので、エラーがない場合は 2 番目の戻り値からデータを取得し、エラーが発生した場合はエラーを管理します。
どうすればアサートできますか?
最初にこう書きました。
local ret, data = pcall(the_function)
assert(ret, "Error: "..data)
-- use data from here on.
問題は、成功した場合でも assert メッセージが評価されるため、呼び出しが成功すると、Lua は文字列とテーブルの連結について文句を言うことです。
この問題は、 assert を使用してエラーを引用したいが、if not ret then assert(false, "...") end
.