Home Developer Coding Problems: One Less Exception

Coding Problems: One Less Exception

Author

Date

Category

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

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Subscribe to our newsletter

To be updated with all the latest news, offers and special announcements.

Recent posts

New Public Product Roadmap – See What's In Store For Q1

We’re excited to release a public product roadmap for 2020.  Now, those outside Codacy can see what our team is working on...

4 Trends To Boost Software Quality in 2020

Today’s abundance of technology has created an increased demand for higher software quality. With companies aware of this, spending on IT worldwide...

7 Reasons Dev Teams Choose Codacy Over Other Automated Code Review Tools

Today more than 100,000 developers at leading global organizations like PayPal and Adobe across industries use Codacy (read customer case studies). ...

Introducing GitHub Sync For Seamless User Management

Announcing GitHub Sync: Synced Organizations For GitHub We are thrilled to announce "GitHub Sync" -- automatic user and repository...

Ringing In 2020 With Codacy

It’s been an exciting 2019 at Codacy and we expect more excitement in 2020. Over the last 12 months we’ve built out...