Skip to content
Advertisement

How to handle a static final field initializer that throws checked exception

I am facing a use case where I would like to declare a static finalfield with an initializer statement that is declared to throw a checked exception. Typically, it’d look like this:

JavaScript

The issue I have here is that the ObjectName constructor may throw various checked exceptions, which I don’t care about (because I’d know my name is valid, and it’s allright if it miserably crashes in case it’s not). The java compiler won’t let me just ignore this (as it’s a checked exception), and I would prefer not to resort to:

JavaScript

Because static blocks are really, really difficult to read. Does anyone have a suggestion on how to handle this case in a nice, clean way?

Advertisement

Answer

If you don’t like static blocks (some people don’t) then an alternative is to use a static method. IIRC, Josh Bloch recommended this (apparently not in Effective Java on quick inspection).

JavaScript

Or:

JavaScript

(Edited: Corrected second example to return from method instead of assign the static.)

Advertisement