Cómo manejar un inicializador de campo final estático que lanza la excepción verificada
Me enfrento a un caso de uso en el que me gustaría declarar unstatic final
campo con una sentencia de inicialización que se declara para lanzar una excepción marcada. Típicamente, se vería así:
public static final ObjectName OBJECT_NAME = new ObjectName("foo:type=bar");
El problema que tengo aquí es que elObjectName
el constructor puede lanzar varias excepciones marcadas, que no me importan (porque sabría que mi nombre es válido y está bien si falla estrepitosamente en caso de que no lo sea). El compilador de java no me deja ignorar esto (ya que es una excepción comprobada), y preferiría no recurrir a:
public static final ObjectName OBJECT_NAME; static{ try{ OBJECT_NAME = new ObjectName("foo:type=bar"); }catch(final Exception ex){ throw new RuntimeException("Failed to create ObjectName instance in static block.",ex); } }
Porque los bloques estáticos son realmente, muy difíciles de leer. ¿Alguien tiene alguna sugerencia sobre cómo manejar este caso de una manera limpia y agradable?