1

Watch our latest Product Showcase

Group 370
2

Meet us at WeAreDevelopers World Congress in Berlin

Group 370
3

Spotlight Whitepaper by IDC on Importance of Automated Code Review Technologies

Group 370

Coding Problems: One Less Exception

In this article:
Subscribe to our blog:

java.util.NoSuchElementException: No value found for ‘USD’
at scala.Enumeration.withName(Enumeration.scala:124)

Dammit! I hate it when code blows in production.
For some cases there’s just no tests or static analysis that can cover you.

This is one of those cases. Calling the withName method with an inexistent value in an Enumeration will blow up. Sure, it throws an Exception, but since Scala has unchecked exceptions, the compiler won’t warn you.

https://gist.github.com/mrfyda/ad94180cd00613cf314b

Unfortunately, it wasn’t the first time we had exactly this problem, so we agreed to start avoiding the withName method and writing it as:

https://gist.github.com/mrfyda/d9241e947c1600866069

Since find returns an Option, the code needs to be ready to deal with the possibility of a non existing value.

We also want all of our users to stay safe, so today we’re adding a new code pattern: Prohibit withName on Enumeration.
You can check your code for this issue and fix it before it blows in production!


Edit: We just published an ebook: “The Ultimate Guide to Code Review” based on a survey of 680+ developers. Enjoy!


About Codacy

Codacy is used by thousands of developers to analyze billions of lines of code every day!

Getting started is easy – and free! Just use your  GitHub, Bitbucket or Google account to sign up.

GET STARTED

RELATED
BLOG POSTS

What Programming Languages need Code Reviews?
This is a blog post of our Code Reading Wednesdays from Codacy (http://www.codacy.com): we make code reviews easier and automatic. We launched Codacy...
Code pattern parameters and on demand analysis
We’ve just launched two features that have been requested by our users and that will definitely help you get more value out of Codacy. These are on...
Team management: our new organization page
For better team management, we’ve introduced a feature to help you structure and manage your teams better. Read more about our brand new organizations...

Automate code
reviews on your commits and pull request

Group 13