Pascalでのエラー管理
問題
デフォルトでは、Pascalでは、エラー処理はコンパイラによって提供されます。 このため、プログラムはRuntime errorで始まり、 その後にerror numbe rが続くメッセージを表示して終了します。
したがって、プログラマがエラー自体を処理したい場合は、[オプション]メニューと[ビルド]を使用してコンパイラによるエラーチェックのオプションを無効にするか、コードソースプログラムでコンパイラ指令を直接使用する必要があります。
たとえば、特定のプログラムで、リセットによってファイルを開き、そのファイルが存在しない場合は、エラーメッセージが表示され、プログラムは停止します。
溶液
これを避けるために、ファイルかどうかをテストして、entry / exitの結果を返す関数として、コンパイラ指令$ IとIOresultを使用して適切に動作することができます。 ディレクティブ($ I-)を使用すると、プログラマーはこの種のエラーを自分で管理する必要があります。
これは、ファイルの物理名を入力して開くことを可能にするプログラムです。 ファイルが存在しない場合は、エラーでプログラムを終了せずに作成されます。ランタイムエラー2 at ...(ファイルなし)。
オープニングプログラム WinCrtを使用します。 ファイルを入力します。 Var f:ファイル。 名前:文字列。 書き込み開始( 'ファイル名:'); Readln(name); (f、nom)を代入します。 {$ I-}リセット(f); IOが0の場合、書き換えます(f)。 {$ I +}終了
このヒントを提供してくれたZouari Lazharに感謝します。