4.11.3 The exception term
Built-in predicates generate exceptions using a term
error(Formal, Context). The first argument is the `formal' 
description of the error, specifying the class and generic defined 
context information. When applicable, the ISO error term definition is 
used. The second part describes some additional context to help the 
programmer while debugging. In its most generic form this is a term of 
the form context(Name/Arity, Message), where
Name/Arity describes the built-in predicate that 
raised the error, and Message provides an additional 
description of the error. Any part of this structure may be a variable 
if no information was present.