Beautiful Exceptions: A New Way to View Server Errors
Join the DZone community and get the full member experience.Join For Free
dreams do come true - our new errors viewer
takipi records variable values as they were in each frame of the stack. we were looking for a way to allow users to easily scan the stack and spot the variables that caused the error. how cool would it be, we thought, if we could scan the code that led to an error with a single scroll? pretty cool. so we built it - a new way to view server errors:
looking inside the monsteron the left of this new screen you can see the call stack that led to an exceptions or a logged error (screenshot below). frames with a glasses icon represent frames with recorded variables. to reduce noise, takipi only records variable values that might have led to the error. frames marked with a pencil icon contain code that was recently modified. since new bugs often crawl out of new code, highlighting these parts can help tracking them. if one machine invoked an api call on another machine which caused an error, you'll be able to see the entire path. the cross-machine analysis works if you're sending an http request using java’s standard apis or any popular 3rd party library.
the prime suspectsscooting over to the right - the prime suspects. here you can see your code and get the exact variable values that led to each error as they were when it happened. quickly scroll over all the methods that led to the error. recorded variables are highlighted and when hovering you can see the variable value as it was at the moment of the error. if it's a complex object with fields, you can view them as well. how do we display code? to provide max security for source code, takipi encrypts the user’s code using a 256-bit secret aes key that can be generated locally.
the rest is historyif this exception happened more than once you can toggle between different recordings and compare the stack and variable values. for exceptions that happen dozens, hundreds, thousands or millions of times, we limit the recordings to a few dozen in order to keep the overhead minimal.
Opinions expressed by DZone contributors are their own.