It is generally best practice to create global exception classes. That said, a handy but not so well-known option is to define a local exception class inside a global class. These allow internal exceptions to be handled without the need for another global DDIC object.