User Tools


This shows you the differences between two versions of the page.

Link to this comparison view

cl:types:serious-condition [2017/05/01 21:00] (current)
Line 1: Line 1:
 +====== Condition Type SERIOUS-CONDITION ======
 +====Class Precedence List==== ​
 +**serious-condition**,​ **[[CL:​Types:​condition]]**,​ **[[CL:​Types:​t]]**
 +All //​[[CL:​Glossary:​condition|conditions]]//​ serious enough to require interactive intervention if not handled should inherit from the type **serious-condition**. This condition type is provided
 +primarily so that it may be included as a //​[[CL:​Glossary:​superclass]]//​ of other //​[[CL:​Glossary:​condition]]//​ //​[[CL:​Glossary:​type|types]]//;​ it is not intended to be signaled directly.
 +Signaling a //​[[CL:​Glossary:​serious condition]]//​ does not itself force entry into the debugger. However, except in the unusual situation where the programmer can assure that no harm will come from failing to //​[[CL:​Glossary:​handle]]//​ a //​[[CL:​Glossary:​serious condition]]//,​ such a //​[[CL:​Glossary:​condition]]//​ is usually signaled with **[[CL:​Functions:​error]]** rather than **[[CL:​Functions:​signal]]** in order to assure that the program does not continue without //​[[CL:​Glossary:​handling]]//​ the //​[[CL:​Glossary:​condition]]//​. (And conversely, it is conventional to use **[[CL:​Functions:​signal]]** rather than **[[CL:​Functions:​error]]** to signal conditions which are not //​[[CL:​Glossary:​serious conditions]]//,​ since normally the failure to handle a non-serious condition is not reason enough for the debugger to be entered.)