(defvar *code*) (defun calling-by-two-funcs () (unless (= 200 *code*) (throw :foo nil))) (defun show-1 () (catch :foo (calling-by-two-funcs) 1)) (defun show-2 () (catch :foo (calling-by-two-funcs) 2)) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CL-USER> (let ((*code* 200)) (show-1)) 1 CL-USER> (let ((*code* 200)) (show-2)) 2 CL-USER> (let ((*code* 404)) (show-1)) NIL CL-USER> (let ((*code* 404)) (show-2)) NIL