Tips to Improve Your Exception Handling
Getting exception handling right can spare you hours (or even days) of investigating. Unforeseen production issues can demolish your supper and end of the week designs. They can even influence your notoriety if not settled rapidly. Having an unmistakable arrangement on the most proficient method to oversee exceptions will spare you time diagnosing, duplicating, and correcting issues.
Utilize a solitary, framework wide exception class
Rather than making separate classes for every exception sort, make only one. Furthermore, make it expand RuntimeException. This will decrease your class count and evacuate the need to announce exceptions you wouldn’t deal with at any rate.
Utilize enums for error codes
A large portion of us were prepared to put the reason for an exception into its message. This is fine while evaluating log documents (ugh), however it has drawbacks:
- Messages can’t be deciphered (unless you’re Google).
- Messages can’t be effortlessly mapped to easy to understand text.
- Messages can’t be examined automatically.
Placing information in the message likewise surrenders the wording over to every designer, which can prompt distinctive expressions for a similar disappointment.
6 hints to enhance your exception handling
A superior approach is to utilize enums to show the exception’s sort. Make one enum for every class of errors (installments, confirmation, and so on.). Make the enums actualize an ErrorCode interface and reference it as a field in the exception. While tossing exceptions, essentially go in the appropriate enum. Easy to understand, internationalized text would now be able to be recovered by utilizing the error code as the asset package’s query key.
Add error numbers to enums
Now and again a numerical error code can be related with every exception. HTTP reactions for instance. For those cases, add a getNumber technique to the ErrorCode interface and execute it in each enum.
Add dynamic fields to your exceptions
Great exception handling implies likewise recording relevant data, not only the stack follow. Doing this will spare you big time when attempting to analyze and replicate errors. What’s more, customers won’t need to disclose to you what they were doing when your app quit working (you’ll definitely know and ideally have settled it).
Counteract superfluous settling
Long, redundant stack follows help nobody. Far more detestable, they squander your opportunity and assets. While rethrowing exceptions, call a static wrap technique rather than the exception’s constructor . The wrap technique will be in charge of choosing when to settle exceptions and when to simply restore the first example.
Your new code for rethrowing exceptions will resemble the accompanying.
Utilize a focal lumberjack with a web dashboard
Consider this tip a reward. Contingent upon your circumstance, accessing production logs could be a significant bother. A bother that may include numerous go-betweens (since numerous engineers don’t approach production situations).
Things deteriorate in case you’re in a multi-server condition. Finding the correct server — or confirming that the issue just influences one server — can be a significant headache.