Get(LastError)で安全なエラー処理入門
Tips

Get(LastError)で安全なエラー処理入門

2026年6月12日 admin Tips

Get(LastError)で、まずは「安全なエラー処理」から始めよう

FileMakerでスクリプトを作っていると、「ちゃんと動いているように見えるのに、なぜか結果がおかしい」「ユーザーが何かミスしても、そのままスルーされてしまう」といった経験はないでしょうか。
こうした「気づきにくいトラブル」を防ぐ第一歩が、FileMakerの関数 Get(LastError) を使ったエラー処理です。

この記事では、難しい専門用語はなるべく避けて、Get(LastError)を使った基本的なエラー処理の考え方と、実際の使い方を、初心者でも分かりやすいように解説します。

Get(LastError)とは?ざっくりイメージをつかむ

Get(LastError) は、「直前に実行したスクリプトステップの結果」を数字で教えてくれる関数です。
この数字を見て、「うまくいった(0)」「何か問題が起きた(0以外)」を判断できます。

  • 0: 正常に実行できた
  • 0以外: 何らかのエラーが起きた(例:レコードが見つからない、権限がない、保存できない など)

つまり、スクリプトの中で大事な処理をしたら、その直後にGet(LastError)をチェックすることで、問題があればきちんと対処できるようになります。

なぜGet(LastError)を使うべきなのか

エラー処理を入れていないと、次のような「困ったこと」が起こりがちです。

  • 検索結果がゼロ件なのに、そのまま次の処理に進んでしまう
  • 権限不足やネットワークエラーで保存できていないのに、ユーザーは気づかない
  • データが更新できなかったのに、完了メッセージだけ出てしまう

Get(LastError)をチェックするだけでも、例えば次のような「安全な動き」に変えられます。

  • エラーがあれば、ユーザーに分かりやすいメッセージを表示する
  • エラーが出たら、その場で処理を止める
  • 必要に応じてログ(履歴)を残す

これだけで、「何が起こったか分からない」状態をかなり防ぐことができます。

基本パターン:ステップ直後にGet(LastError)を確認する

最も基本的な使い方は、重要なステップの直後に「If」ステップでGet(LastError)をチェックする方法です。

例えば、「レコードを検索して、見つからなければメッセージを出して終わる」ようにしたい場合は、次のような流れになります。

実行するステップ例:
1. 検索実行(検索スクリプトなど)
2. If [ Get ( LastError ) ≠ 0 ]
    カスタムダイアログを表示:
    「該当するレコードが見つかりませんでした。」
    Exit Script [ 結果: False ]
   End If
3. (ここから先は、検索が成功したときだけ実行される処理)

ポイントは以下の2つです。

  • チェックするのは、必ず「直前に実行したステップ」に対してということ。
  • エラーが出たら「何をするか」をはっきり決めておくこと(中断する/メッセージを出す など)。

よくある場面別:Get(LastError)の活用例

1. レコードの作成・編集・削除

「新規レコード/要求」「レコードを削除」などの後も、エラーが出ることがあります。例えば権限の制限が厳しいファイルでは、思ったように作成・削除できないこともあります。

新規レコード/要求
If [ Get ( LastError ) ≠ 0 ]
   カスタムダイアログを表示:
   「レコードを作成できませんでした。権限やネットワーク状態を確認してください。」
   Exit Script [ 結果: False ]
End If

2. ファイルのインポート・エクスポート

インポートやエクスポートは、ファイルが見つからない・権限がないなどで失敗することがあります。大量データを扱う場面では、必ずエラーを確認することをおすすめします。

レコードをインポート
If [ Get ( LastError ) ≠ 0 ]
   カスタムダイアログを表示:
   「インポートに失敗しました。ファイルの場所や形式を確認してください。」
   Exit Script
End If

3. 外部データソースや、ネットワークが絡む処理

外部SQL参照や、外部ファイルサーバー、Web公開など、ネットワークに依存する処理は、環境によってエラーが出やすい部分です。
このようなステップの直後には、必ずGet(LastError)を入れておくと安心です。

「とりあえずこれだけ」は押さえたい基本ルール

本格的なエラー処理を組み始めると、ログ記録や詳細な分岐など、やりたいことはいろいろ出てきます。
ただ、まず最初に押さえたいのは、以下の「最低限のルール」です。

  1. 大事なステップの直後には、必ずGet(LastError)をチェックする
  2. エラーが0以外なら、その場で「どうするか」を決めておく
     (メッセージを出す/処理を中止する/ログに残す など)
  3. スクリプトの途中でエラーを無視して進めない
     ⇒ 後で原因不明の不具合になりやすい

エラー番号ごとに細かく分けたいとき

慣れてきたら、Get(LastError)の結果によって、もう少し細かく処理を変えることもできます。

  • 401: 該当するレコードが見つからない
  • …: 他にも多くのエラー番号が定義されています

例えば、「レコードがないとき」と「別の原因で失敗したとき」で、メッセージを変えたいような場合です。

検索実行
Set Variable [ $error ; Value: Get ( LastError ) ]

If [ $error = 401 ]
   カスタムダイアログを表示:
   「条件に合うレコードはありませんでした。」
   Exit Script
Else If [ $error ≠ 0 ]
   カスタムダイアログを表示:
   「検索中にエラーが発生しました。(エラー番号: " & $error & ")」 
   Exit Script
End If

このように、エラー番号を変数に一度入れておくと、ログとして残したり、後で画面に表示したりするときにも便利です。

まずは「重要なスクリプト」から始めてみる

全部のスクリプトに完璧なエラー処理を入れようとすると、途中で嫌になってしまうこともあります。
そこでおすすめなのは、次のような「影響が大きいスクリプト」から順にGet(LastError)を組み込む方法です。

  • データを大量に削除・更新するスクリプト
  • 請求書や売上など、重要データを扱うスクリプト
  • 他システムとの連携、インポート・エクスポートを行うスクリプト

これだけでも、日々の運用の安心感はかなり変わってきます。
慣れてきたら、共通の「エラー処理用スクリプト」を作って呼び出すなど、より整理された作りにも発展させられます。

まとめ:Get(LastError)は「安全運転」のための必須チェック

FileMakerの開発では、「ちゃんと動いているように見えるけれど、裏でエラーが起きている」ことが少なくありません。
Get(LastError) をうまく使うことで、

  • 問題が起きたときにすぐ気づける
  • ユーザーに分かりやすいメッセージを出せる
  • データの誤更新や、原因不明の不具合を減らせる

といった「安全運転」に近づけます。
まずは重要なスクリプトの中で、大事なステップの直後にGet(LastError)を挟むことから、少しずつ取り入れてみてください。

※ 本稿は、生成AIを使用して執筆しています。重要な内容については、必ずご自身でマニュアル等をご確認ください。