Variable *BREAK-ON-SIGNALS*

UP


Variable *BREAK-ON-SIGNALS*

Variable *BREAK-ON-SIGNALS*

値の型

型指定子

初期値

nil

定義

(typep condition *break-on-signals*)trueのとき、 signalの呼び出しや、 その他の暗黙的にsignalを呼び出す、 errorのような操作は、 そのコンディションを通知する前にデバッガーに入ります。

continue restart*break-on-signals*による処理の中断が生じたときに、 通常の通知処理を継続するときに使われます。

例文

*break-on-signals* =>  NIL
(ignore-errors (error 'simple-error :format-control "Fooey!"))
=>  NIL, #<SIMPLE-ERROR 32207172>

(let ((*break-on-signals* 'error))
  (ignore-errors (error 'simple-error :format-control "Fooey!")))
>>  Break: Fooey!
>>  BREAK entered because of *BREAK-ON-SIGNALS*.
>>  To continue, type :CONTINUE followed by an option number:
>>   1: Continue to signal.
>>   2: Top level.
>>  Debug> :CONTINUE 1
>>  Continue to signal.
=>  NIL, #<SIMPLE-ERROR 32212257>

(let ((*break-on-signals* 'error))
  (error 'simple-error :format-control "Fooey!"))
>>  Break: Fooey!
>>  BREAK entered because of *BREAK-ON-SIGNALS*.
>>  To continue, type :CONTINUE followed by an option number:
>>   1: Continue to signal.
>>   2: Top level.
>>  Debug> :CONTINUE 1
>>  Continue to signal.
>>  Error: Fooey!
>>  To continue, type :CONTINUE followed by an option number:
>>   1: Top level.
>>  Debug> :CONTINUE 1
>>  Top level.

影響

なし。

参考

break, signal, warn, error, typep, 9.1. コンディションシステムの説明

備考

*break-on-signals*は、 主に通知したコードのデバッグに使う意図があります。 *break-on-signals*が設定されたとき、 ユーザは最も厳しい仕様を選択することが推奨されます。 *break-on-signals*を設定することは、 コンディションの通知を捕捉することのモジュラー処理に違反します。 実際には*break-on-signals*を設定することの完全な効果は、 場合によっては予測できないかもしれません。 なぜなら、ユーザーはsignalがコード内で、 どれくらいの種類や数で呼び出されているのか 気が付いていないかもしれないからです。

*break-on-signals*は、 デバッガーに早く入ることができますが、 このような場合でもerrorcerrorのような操作で起こる 追加のデバッガーの起動を排除するようなものではありません。


TOP, Github