next prev up top content index

7 Conditions

Overview

The Dylan exception system is built on top of an underlying signal system. Together, the signal system and the exception system comprise the Dylan condition system.

At the signal layer, the condition system provides a way of establishing a run-time connection between a signaler and a handler through a condition. This is essentially a run-time analog to the more usual fixed connection between a caller and a callee established through function-name matching. This layer of the condition system is little more than a way to locate and call a function. The function call does not necessarily involve any exceptional situation or nonlocal flow of control.

At the exception layer, the condition system specifies a set of protocols for categorizing and handling exceptional situations through recovery or exit. This higher layer provides overall structure, eliminates the possibility of failing to notice an exceptional situation, and provides a clean separation between "normal code" and "code for dealing with exceptions."

The nonlocal exit and clean-up features of the block statement are often used in conjunction with the facilities described in this chapter. block is described on page 404.