例: ActiveX のメソッドが返したエラーをトラップする(AutoLISP/ActiveX)

vl-catch-all-apply 関数を使用することにより、ActiveX のメソッドが返したエラーをトラップし、プログラムをどのように継続すべきかを決定することができます。

注: AutoLISP での ActiveX のサポートは Windows のみに制限されています。

新しい AutoLISP ソース コード ファイルを作成する

  1. Visual LISP で、[ファイル] [ファイルを新規作成]をクリックします。
  2. [ファイル] [名前を付けて保存]をクリックします。
  3. [名前を付けて保存]ダイアログ ボックスで、
    • 新しい AutoLISP ソース ファイルの場所を指定します。
    • [ファイル名]ボックスに、interceptActiveXErrors と入力します。
    • [ファイルの種類]ドロップ ダウン リストで、[LISP ソース ファイル]を選択します。
    • [保存]をクリックします。

モデル空間に放射線オブジェクトを作成する

モデル空間に最後に追加されたオブジェクトの境界ボックスを取得する

コードをロードして実行する

  1. [ツール] [エディタ内のテキストをロード]をクリックします。
  2. AutoCAD のコマンド プロンプトに対して (bnddrop) と入力し、[Enter]を押します。

    放射線は無限に延びているため、ボックスで囲むことはできません。このため、GetBoundingBox メソッドは次のエラーになります。

    ; error: Automation Error. Invalid extents

    このコードをアプリケーション プログラムの一部にすると、この時点で実行が停止します。

vla-GetBoundingBox 関数によって作成されたエラーを取得する