Scala Try

One thing to know first is the concept ofException. AnException, in java and Scala, is when an error happen. It will stop the execution of the program andthrowanException.

The way to manually trigger anExceptionis withthrow. The code will then spit out what is called astack trace. The stack trace will display each line of code that was in the stack of operation when theExceptionoccurred. It is essential to know how to read those when fixing a bug in a software.

Sometimes, a code will trigger an unexpected error, not one you decide to trigger. For instance, with bad math or more commonly from a third party library like a database connection. The connection might fail or timeout, etc… And then you need to react from the error. Maybe it is a critical error and you will decide to let the program stop its execution. But sometimes, you might be able to recover, in the case of a database, you could retry until it works, or retries several times until it succeed.

Tryis the way to handleExceptionin Scala. It allows you to abstract the potential failure and use the same methods thatOptionhas to manipulate the data that might or might not be there. But instead ofNonewhen theOptionis empty, you get anExceptionwhen it is not defined which would carry more information about the kind of failure that was encountered. LikeOptionyou can usemap,flatMap,get,getOrElseand more.

Go back to the editor and try to make some code usingmapandflatMapwithTry.

You might have noticed thecaseas well. This is stillpattern matching. It is a bit piece of Scala and it is hard to explain, which is why I have been trying to slowly introducing it so when it comes time to dive more into it, you will already have some kind of intuition about it. Patience 🙂

Reveal more information and clues
Load Exercise