This is common convention for many, many languages, regardless of static or dynamic typing. It's helpful because you don't have to go and look at the class definition to figure out what a `PriorityMessage` might be. The `Exception` lets you know immediately. It also avoids conflating exception types with the general type 'namespace'.

I don't know why half of the types in this module don't follow the convention.