DEV Community

loading...
Cover image for Code Smell 26 - Exceptions Polluting

Code Smell 26 - Exceptions Polluting

mcsee profile image Maxi Contieri Originally published at maximilianocontieri.com Updated on ・1 min read

It is very nice to have lots of different exceptions. Your code is declarative and robust. Or not?

Problems

  • Over Design

  • Namespace Pollution

Solutions

  1. Avoid creating anemic exceptions as globals.

  2. Create exceptions only if they behave differently.

  3. Model exceptions with objects. Classes are handy for lazy programmers.

Sample Code

Wrong

Right

Detection

New exceptions should override behavior methods.

No. code, description, resumable, etc are not behavioral.

Tags

  • Abuser

  • Naming

Conclusion

You would not create different classes for every Person instance, so they return different names. Why would you do it with exceptions.

How often do you catch a specific exception?

Go out and check your code.

Is it necessary to be a class?

You are already coupled to the class. Couple to the description instead.

Exception instances should NOT be Singletons.

Relations

Credits

Photo by Nick van den Berg on Unsplash


You will fall to ruin because you believe that exceptions to the rule make new rules.

Pierce Brown

Discussion (0)

pic
Editor guide