初版は Lua 5.0 を対象として執筆されました。後続のバージョンでもほぼ関連性はありますが、若干の違いがあります。
第 4 版は Lua 5.3 を対象としており、Amazon やその他の書店で購入できます。
書籍を購入することは、Lua プロジェクトのサポートにも役立ちます。
![]() |
Lua でのプログラミングLua | ![]() |
セクション IV. C API 第 24 章 C API の概要 |
C++ や Java とは異なり、C 言語は例外処理メカニズムを提供しません。Lua はこの問題を緩和するために C の setjmp
機能を使用しており、例外処理に近いメカニズムになります。(C++ で Lua をコンパイルする場合、本来の例外を使用するようにコードを変更するのは難しくありません。)
Lua のすべての構造体は動的です。必要に応じて拡大し、可能な限り、最終的には縮小されます。つまり、Lua ではメモリ割り当てが失敗する可能性があります。ほとんどの操作でこのような場合が発生する可能性があります。Lua は、API における各操作にエラーコードを使用する代わりに、例外を使用してこれらのエラーを通知します。つまり、ほとんどすべての API 関数は、返り値を返す代わりに、エラーをスローする可能性があります (つまり、longjmp
を呼び出す)。
ライブラリコード (つまり、Lua から呼び出される C 関数) を記述する場合、ロングジャンプの使用は、Lua が時折発生するエラーをキャッチするため、実際の例外処理機能と同じくらい便利です。しかし、アプリケーションコード (つまり、Lua を呼び出す C コード) を記述する場合、これらのエラーをキャッチする方法を提供する必要があります。
著作権 © 2003–2004 Roberto Ierusalimschy. All rights reserved. | ![]() |