Problemas al inicializar una variable final en Java

Me encuentro con ligeras variaciones de un problema en Java y está empezando a llegar a mí, y realmente no puedo pensar en una forma adecuada de solucionarlo.

Tengo una propiedad de objeto que es final, pero dinámica. Es decir, quiero que el valor sea constante una vez asignado, pero el valor puede ser diferente en cada tiempo de ejecución. Así que declaro la variable de nivel de clase al comienzo de la clase, digamosprivate final FILE_NAME;. Luego, en el constructor, le asigno un valor, digamosFILE_NAME = buildFileName();

El problema comienza cuando tengo código en elbuildFileName() método que arroja una excepción. Entonces intento algo como esto en el constructor:

try{
   FILE_NAME = buildFileName();
}
catch(Exception e){
   ...
   System.exit(1);
}

Ahora tengo un error: "Es posible que el campo final en blanco FILE_NAME no se haya inicializado". Aquí es donde empiezo a molestarme un poco con el estricto compilador de Java. Sé que esto no será un problema porque si llega a la captura, el programa saldrá ... Pero el compilador no lo sabe y, por lo tanto, no permite este código. Si intento agregar una asignación ficticia a la captura, obtengo: "El campo final FILE_NAME ya puede haber sido asignado". Claramente no puedo asignar un valor predeterminado antes del try-catch porque solo puedo asignarlo una vez.

Algunas ideas...?

Respuestas a la pregunta(5)

Su respuesta a la pregunta