Exception-throws nested, asserts pre-/post-conditions, provides a "RuntimeException"-like mechanism.

One of the most flexible error message reporting facilities I encountered in my career started with a lower level error and allowed upper layers to give more user-relevant descriptions of what had happened, keeping the existing error about as a cause.

Another really useful facility I have found in keeping good class-instance and interface contract compliance intact has been the ability to assert (some other way than man 3 assert) what the pre and post conditions should be.

Another really useful thing I tripped into was the idea of RuntimeException -- when pairing on a Java project, my much more experienced in Java coding partner had set his Eclipse to auto-create lots of methods with RuntimeException's whose text said, "Not implemented yet."

All of these looked useful for my own purposes, all of them looked like things my own classes of exceptions could benefit from.

I've also been using (I admin, somewhat quirkily) the invocation operator to Do What You Were Meant For -- in this case, format your error and give me a string. If this becomes unclear for my own projects, I'll probably back away from the idea but so far it seems to be working well.