Exceptions
In some cases it is necessary to interrupt the flow of execution with
a failure: this is where the predefined function failwith
comes in.
The failwith
function
The failwith function raises an error that cannot be caught, which terminates the contract.
The call to failwith sometimes needs to be annotated with a type when the type-checker cannot infer the correct type, e.g. return (failwith("message") : result);
.
Assertions
Assertions can be used to ensure a certain condition is met when
running a contract. The predefined function assert
is used to check
whether a given a Boolean condition is true. The function
assert_some
is used to check if an option value is not None
. The
function assert_some_with_error
is like assert_some
but an error
message can be given. When a condition is not met, the contract will
stop executing and display an error.
You can use assert_with_error
or assert_some_with_error
to use a custom error message