Comparing Lisp conditions to Java Exceptions



I was discussing Java Exceptions vs. Lisp conditions with a colleague
recently, and he agreed that Lisp's conditions have several points in
their favour. He did raise one point though, that I didn't know the
answer to.

In Java you may specify, as part of a method's signature, the classes of
Exception that it might throw. I had to admit that I knew of no facility
for declaring the conditions that might be signalled by a Lisp method or
function. Is there such a mechanism? If not, are there good reasons why
it would be an unnecessary or undesirable feature?

Thanks,
Bill.
.