From my experience, while topics usually cover different methodologies of working with exceptions, real programs and libs in non-small apps use them all, so you have to combine or make sure you can convert between all possible types easily.