Jagaimo
AutoLISPが、
“プログラムに問題があって中断したとき”
“ESCキーを押してキャンセル中断したとき”
エラー処理関数が実行されます。
標準のエラー処理はどのようなものなのか、そして、エラー処理のカスタマイズ方法を紹介していきます。
エラー処理とは?
エラー処理の標準の働き。エラーメッセージを出すだけのシンプルなものです。
コマンド/関数の中でエラー処理関数*error*をカスタマイズ
エラー処理は、コマンド/関数定義の中でも、別にエラー処理だけ定義しても定義できます。
コマンド/関数の定義内でエラー処理も定義した場合です。
システム変数とエラー処理
自作コマンド/関数実行中だけシステム変数を変更したい場合、最後にシステム変数を戻すコードを入れていても、エラー中断されるとのことその部分が実行されません。
なので、中断時のことも考えてエラー処理が必要になります。
ここでは、コマンド/関数定義の外で、別に自作関数を作ってエラー処理定義をしています。
UNDOを使ったエラー処理
一連の流れをひとまとめにして、UNDO1回でまとめて戻ることができるようにします。
エラー処理に”UNDO” を入れれば、エラー中断時には”UNDO”実行させることもできます。
よく使うエラー処理パターンは自作関数に
よく使うエラー処理は、初期設定の保存、コマンド終わりの初期設定に戻す、エラー処理、すべて自作関数にすると便利です。
エラー処理を定義をコマンド定義の内か外かの比較
これらのコマンドサンプルは、色の指定方法が違うだけのどちらも図形の色を変えるコマンドです。
どちらも同じ内容のエラー処理をしていますが、エラー処理の定義の仕方を変えました。
コマンドの関数内でエラー処理定義をしている例
コマンドの関数外でエラー処理定義をしている例
Comments