I am reading following text in applied C++ book.

> 
> Can exceptions be thrown from within our handler functions? The answer
>  is yes, an error can indeed be thrown. The problem is that this
>  exception must be in every exception specification that may be
>  tranversed until the exception is caught. If this is not done, the
>  application will call std::terminate(). For a large system, this
>  amounts to adding an exception specification to every function ,
>  unless you understand the dynamics of your application perfectly. It
>  is also important to cath all exceptions within your destructor;
>  otherwise, std::terminate() will be called as well in this case.
> 
> 
> 

In above text I have following questions and need your help in understanding.

1. What does author mean by "exception must be in every expection specification that may be traversed" ?
2. My understanding is that destructor we cannot use exceptions. What does author mean to catch all exceptions within your destructor.

Request to clarify with simple examples

Thanks for your time and help.