The following video has a good, developer-friendly introduction to the subject that should answer your question. Take a look in particular at the code snippets that are sprinkled throughout the video and notice how much cleaner, shorter, simpler, less computationally costly, and "universal"/"exception-free" the code becomes: https://www.youtube.com/watch?v=tX4H_ctggYo