メソッドを開発しテストする際には、エラーを発見し修正することが重要です。
言語を使用する場合におこりうるエラーには、タイプミス、シンタックス(構文)または環境エラー、設計やロジックのエラー、ランタイムエラーなどがあります。
タイプミスはメソッドエディタによって検出され、赤色で表示、またメソッドウィンドウ下部の情報エリアにメッセージが表示されます。以下はタイプミス時のウインドウ表示例です:

このようなタイプミスは通常シンタックスエラーの原因となります (この場合、テーブル名が間違っています)。コードを検証すると、情報エリアにエラーの説明が表示されます。
このような場合タイプミスを修正し、テンキーのenterキーを押すと、再度コードの検証が行われます。メソッドエディタに関する詳細は4D Design Referenceを参照してください。
メソッドの実行時のみとらえることのできるエラーがあります。シンタックスエラーウィンドウはエラーが発生した際に表示されます:

このウィンドウでは、文字式を受け入れるUppercaseコマンドにテーブル名が渡されるというエラーが表示されています。このウィンドウやボタンの利用方法はシンタックスエラーウィンドウを参照してください。上の画像では、"詳細"エリアが展開され、最新のエラーと番号が表示されています。
時に、配列やBLOBを作成するための十分なメモリがない場合があります。ディスク上のドキュメントにアクセスすしようとしたときに、ドキュメントが存在しないか、他のアプリケーションにより既に開かれていることもあります。

このようなエラーはコードやその書き方を直接の原因として発生するわけではありません。これらは時に"エラーの原因となるものがたまたま起こった"ために発生します。ほとんどの場合、ほとんどの場合、このようなエラーはON ERR CALLコマンドでインストールされるエラー処理メソッドで簡単に処理できます (ON ERR CALLの説明参照)。
このウィンドウに関する詳細はシンタックスエラーウィンドウを参照してください。
一般にこれらは発見が最も難しいタイプのエラーです。デバッガを使用して、それらを検知します。これまでに説明しているエラーは、タイプミスを除いて、「設計またはロジックのエラー」という範疇に該当します。例は次の通りです:
- まだ初期化されていない変数を用いようとしたため、シンタックスエラーが発生する場合があります。
- 間違った引数を受け取ったサブルーチンが、その間違った名前によりドキュメントを開こうとしたため、環境エラーが発生している場合があります。この場合、実際に中断が発生しているコード部分が問題の原因ではなく、外部にあるということに注意が必要です。
設計またはロジックのエラーには、次のような場合もあります:
- SAVE RECORDコマンドを呼び出す際に、対象となるレコードがロックされているかどうかを最初にテストしなかったために、レコードが正しく更新されない。
- オプション引数を追加した状態がテストされていないため、メソッドが想定通りに動作しない。
アプリケーションモードでは、インタプリタモードでは決して見られない次のようなエラーが発生する場合があります:

これは、文字列の長さを超える文字の場所を参照しようとしているということを示しています。問題の原因を迅速に発見するには、メソッドの名前と行番号を記録し、ストラクチャファイルのインタプリタ版を再び開いて、メソッドの指定された行を確認します。
エラーは日常的なものです。相当行数(数百行程度)のプログラム・コードをエラーが発生しないように作成できることは、非常にまれです。むしろ、エラーに対応または修正するほうが普通です。
4Dはマルチタスク対応アプリケーションなので、ウインドウを切り替えるだけで、すばやくメソッドを編集し、実行することができます。そのたびメソッド全体を再実行する必要がないため、失敗やエラーを非常に迅速に修正できます。また、デバッガを使用すると、エラーを迅速に検出できます。
エラー検出の際によくある初歩的な失敗は、シンタックスエラーウィンドウのアボートボタンをクリックし、メソッドエディタに戻り、コードを表示して原因を確認しようとすることです。これは絶対に止めてください。常にデバッガを使用すれば、相当の時間と労力を節減することができます。
・予期しないシンタックスエラーが発生したときは、デバッガを使用します。
・環境エラーが発生した場合には、デバッガを使用します。
・その他どのようなタイプのエラーが発生した場合でも、デバッガを使用します。
ほとんどの場合、デバッガは、エラーが発生した理由を知るために必要な情報を表示します。この情報があれば、エラーの修正方法はわかります。
Tip: デバッガの使用法を数時間費やして学習し、実際に試しておけば、エラーの原因を究明しなければならなくなった時に何日分、何週間分もの時間と労力をかけずにすむことなります。
デバッガを使用するもう1つの理由は、コードの作成です。いつも以上に複雑なアルゴリズムを作成してしまう場合があります。達成感こそありますが、コーディングが正しいかどうか、テストする前でもまったく確かではありません。見当もつかないまま実行するのではなく、コードの最初でTRACEコマンドを使用します。その後、コードをステップごとに実行して動作を制御し、不安が的中するかどうかを確認します。完全主義的な考え方では、このような方法は望ましくないかもしれませんが、現実主義的な方法が報われる場合もあります。いずれにしても、デバッガを使用してください。