As far as I understand the docs, the descending traversal path does not seem to be implemented correctly. Having the following exception chain E1 -> E2 where E1 is caused by E2, the order of execution seems to be as follows:
1.) descending handler for E2
2.) descending handler for E1
3.) ascending handler for E2
4.) ascending handler for E1
which looks like as if the ascending traversal path has been executed twice instead of going to the root cause and back.