Package Bulletproofing

The Wolfram Language makes it easy to "bulletproof" packages, and prevent features of their environment from affecting their internal operation.

Localizing Variables »

Module localize names of variables

Namespace Bulletproofing

BeginPackage isolate names by declaring a separate context for package functions

Begin isolate names in the implementation of a package

Symbol Protection

Protect protect a symbol against redefinition

ReadProtected protect against definitions being read

Locked attribute to prevent protection from being changed

Evaluation Bulletproofing

Block block out changes to system or other variables

BlockRandom block out reseeding of pseudorandom generators

CheckAbort  ▪  TimeConstrained  ▪  MemoryConstrained

Error & Exception Handling

Confirm confirm that evaluation of an expression does not generate a failure

Enclose catch errors detected by Confirm, etc.

ConfirmBy  ▪  ConfirmMatch  ▪  ConfirmQuiet  ▪  ConfirmAssert

Assert abort if an assertion fails

Evaluation State Bulletproofing

WithCleanup run cleanup code even if an evaluation is aborted

AbortProtect protect the evaluation of an expression from aborts

Function Bulletproofing

CheckArguments issue messages for incorrect arguments or options

ArgumentsOptions separate arguments and options for a function

Version Compatibility

$VersionNumber Wolfram System version number for comparisons

$SystemID short description of computer system

Notebook Interface Bulletproofing

Deploy  ▪  Selectable  ▪  Editable  ▪  Visible  ▪  CellContext