Tags are used to find the catch to which a throw is transferring control.
Tag is evaluated.
It serves as the name of the catch . Forms are then evaluated as an implicit progn , and the results of the last form are returned unless a throw occurs. If a throw occurs during the execution of one of the forms , control is transferred to the catch form whose tag is eq to the tag argument of the throw and which is the most recently established catch with that tag . No further evaluation of forms occurs. The tag established by catch is disestablished just before the results are returned.