SKB — Scala Try

Leo Benkel
Scala Knowledge Bits
3 min readSep 7, 2020

This article is part of the Scala knowledge bits Series.

Periodically, I will publish new exercises so you can slowly build up knowledge about Scala.

It is designed to be done in a very short amount of time and learn a little bit each day, just to create a routine.

This episode will teach you about Scala Try.

Hope you are going to enjoy it! It is designed for anyone to learn Scala from scratch and slowly learn, one Bit at a time.

After this Bit, I would love to hear your feedback in the comments down below.

Feel free to join the Discord server as well if you would like some help and support from the rest of our community.

What are we learning today?

Today we are going to learn about Scala Try !

One thing to know first is the concept of Exception. An Exception, in java and Scala, is when an error happen. It will stop the interruption of the program and throw an Exception.

Time to try on the exercise on your own and scroll down for more information when you are done or if you are stuck.

Exercise

Here is an exercise to complete today.

If I did my job well, you should be able to guess by yourself the solution based on what you previously learned and based on the clues.

But if you get stuck, scroll down to get more information.

The goal of the exercise is to replace the ??? by a piece of code so that the exercise compiles and that's how you win! Good luck!

You can fill the exercise right in here:

Or, if it does not load, go on to Scastie (qtHKpgWXTeiYGARNzTp6zA).

More information about Scala Try

In this exercise you will learn (or have learned, if you have already solved the puzzle) about Scala Try.

The way to manually trigger an Exception is with throw. The code will then spit out what is called a stack trace. The stack trace will display each line of code that was in the stack of operation when the Exception occurred. 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.

Try is the way to handle Exception in Scala. It allows you to abstract the potential failure and use the same methods that Option has to manipulate the data that might or might not be there. But instead of None when the Option is empty, you get an Exception when it is not defined which would carry more information about the kind of failure that was encountered. Like Option you can use map, flatMap, get, getOrElse and more.

Go back to the editor and try to make some code using map and flatMap with Try.

You might have noticed the case as well. This is still pattern 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 🙂

Feel free to go back to the exercise, modify the code to try out new things and get a better intuition for Scala Try.

Conclusion

I hope you have learned something new or had fun during this Scala Knowledge Bit.

Please ask questions or post feedback in the comments below.

Feel free to try on the next Scala Knowledege Bit.

If you are curious about the previous Scala knowledge Bits, go check it out! 🙂

Originally published at https://leobenkel.com on September 7, 2020.

--

--

Leo Benkel
Scala Knowledge Bits

Passionate about Scala, Functional Programming, Data and Teaching.