Skip to main content


Laurence MorganLess than 1 minute


Handles the exception code raised by try or trypipe


catch is designed to be used in conjunction with try and trypipe as it handles the exceptions raised by the aforementioned.


[ try | trypipe ] { code-block } -> <stdout>

catch { code-block } -> <stdout>

!catch { code-block } -> <stdout>


try {
    out "Hello, World!" -> grep: "non-existent string"
    out "This command will be ignored"

catch {
    out "An error was caught"

!catch {
    out "No errors were raised"


catch can be used with a bang prefix to check for a lack of errors.

catch forwards on the STDIN and exit number of the calling function.


  • catch
  • !catch

See Also

  • Schedulers: Overview of the different schedulers (or 'run modes') in Murex
  • if: Conditional statement to execute different blocks of code depending on the result of the condition
  • runmode: Alter the scheduler's behaviour at higher scoping level
  • switch: Blocks of cascading conditionals
  • try: Handles non-zero exits inside a block of code
  • tryerr: Handles errors inside a block of code
  • trypipe: Checks for non-zero exits of each function in a pipeline
  • trypipeerr: Checks state of each function in a pipeline and exits block on error
  • unsafe: Execute a block of code, always returning a zero exit number

This document was generated from builtins/core/structs/try_doc.yamlopen in new window.

Last update:
Contributors: Laurence Morgan,Laurence,Laurence Morgan,Olivier Refalo