Error de compilaci贸n. ¿Qu茅 me pasa?
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.
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.
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
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
