Check

Check[expr,failexpr]

evaluates expr, and returns the result, unless messages were generated, in which case it evaluates and returns failexpr.

Check[expr,failexpr,{s1::t1,s2::t2,}]

checks only for the specified messages.

Check[expr,failexpr,"name"]

checks only for messages in the named message group.

Details

  • Check has attribute HoldAll.
  • Check does not test for messages that have been switched off using Off, or by uses of Quiet that occur inside it.
  • The operation of Check is not affected by being enclosed inside Quiet.
  • In Check[expr,failexpr,"name"], possible named message groups are given by $MessageGroups.
  • Explicit message names of the form s::t can be mixed with named message groups.

Examples

open allclose all

Basic Examples  (2)

Return err when a message is generated:

Check only for specific messages:

Applications  (1)

Use Check and Quiet to provide values for arguments where a function is not applicable:

This function simply returns its argument if its argument is a string of length less than four:

Without the Check and Quiet, the middle input would have returned unevaluated with a message:

Properties & Relations  (1)

Check does not detect messages suppressed with a inner Quiet:

However, the operation of Check is not affected by being inside Quiet:

Introduced in 1988
 (1.0)
 |
Updated in 2007
 (6.0)
2008
 (7.0)