Chapter 8. Handlers

A handler is a subroutine within a script. A handler is defined using a block of code that starts with the keyword on , with syntax of this sort:

on handlerName(  )
        -- commands within the handler
end handlerName

A synonym for on is to.

Tip

When typing a handler definition, don’t bother to type the name of the handler a second time in the end line. Just type end for that line; the compiler will fill in the name of the handler.

A handler definition contains the code to be executed when the handler runs, but the mere presence of the definition does not itself cause such execution. A handler’s code is run when an executed line of code calls the handler, using a corresponding syntax:

            handlerName(  )

The parentheses may not actually appear in the definition or the call; these are just vague syntax templates to get the discussion started. I’ll explain the syntax of handler definitions and calls later in this chapter.

A handler is an important form of flow control, and leads to better-behaved, better-organized, more reusable, and more legible code. With a handler, the same code can be reused in different places in a script. Even if a handler is going to be called only once in the course of a script, it’s a useful device because it names a block of code, and this name can be made informative as to the block’s purpose.

Also, a handler can be called from elsewhere, so that only a specific part of a script or script object is executed. We saw this earlier in demonstrating folder ...

Get AppleScript: The Definitive Guide now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.