Error de compilación. ¿Qué me pasa?

casi416
24 de Julio del 2002
El siguiente fragmento de código me da un error de compilación:

FileOutputStream FichLog;
PrintStream pLog;

String NomFichEnt = args[0];
try {
/* Nombre del fichero de LOG igual al del fichero de entrada */
/* pero cambiando la extensión. */
FichLog = new FileOutputStream (NomFichEnt.substring(0, NomFichEnt.length() - 4) + ".log");
pLog = new PrintStream (FichLog);
} catch (IOException e) {
System.out.println(e);
System.exit(-1); // Si no se puede crear el LOG finaliza la ejecución
}
pLog.println("Comenzado el proceso.");

El error es:
P2Ana.java:38: variable pLog might not have been initialized
pLog.println("Comenzado el proceso.");

Gracias de antemano.

oliali
24 de Julio del 2002
Creo que el problema está en que plog lo inicializas dentro del bloque try, y es posible
que no el flujo no llegue hasta ese punto. Por
ejemplo:

En la linea
FichLog = new FileOutputStream ( ...
salta una excepcion, por lo que el programa sale del try y va al bloque catch

Tras el bloque catch se intenta ejecutar
pLog.println("...
pero plog no esta inicializado a nada (ni siquiera a null), por lo que el compilador lo detecta y no te deja compilar.

Tienes dos opciones:

1) Inicializa plog a null cuando lo defines. Creo que asi te compilará , pero luego te puede saltar
un NullPointerException en ejecucion.

2) Mete la sentencia 'plog.println(..'
en el bloque try

Saludos