Foros del Web » Programación para mayores de 30 ;) » Java »

excepciones

Estas en el tema de excepciones en el foro de Java en Foros del Web. tengo el siguiente codigo Código PHP:      public final static  String ARCHIVO_CONFIGURACION  = ".\\config.txt" ;         public static  void cargarFichero (){          //inicializar variables          InputStream in = null ;          ...
  #1 (permalink)  
Antiguo 13/01/2012, 05:53
Avatar de godisa  
Fecha de Ingreso: noviembre-2011
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 1
excepciones

tengo el siguiente codigo
Código PHP:


    
public final static String ARCHIVO_CONFIGURACION =".\\config.txt";
  
  
  public static 
void cargarFichero(){
        
//inicializar variables
        
InputStream in=null;
        
File archivo null;
        
FileReader fr null;
        
BufferedReader br null;
        
String linea,cadenaAreemplazar;
        
int i=0;
             
        
archivo = new File (ARCHIVO_CONFIGURACION);
        try {
            
fr = new FileReader (archivo);
        } catch (
FileNotFoundException ex) {
            
System.out.println("Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado.");
            
miInterfaz.insertar("Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado.Ponga la carpeta en el escritorio");
        }
        
        
br = new BufferedReader(fr);
        
        try {
                while((
linea=br.readLine())!=null)
            {
                if (!
linea.startsWith("#") )       
                    {          
                        if (
linea.startsWith(",")) 
                        {  
                            
cadenaAreemplazar=",";
                            
linealinea.replaceAll(cadenaAreemplazar"");
                            
Conexion.tiempoInteger.parseInt(linea.trim
                        
}

                        if (
linea.startsWith("!"))
                        {                          
                            
cadenaAreemplazar="!";
                            
linealinea.replaceAll(cadenaAreemplazar"");
                            
linealinea.trim();
                            
Conexion.vector_direcciones.insertElementAt(lineai);
                            
i++;                
                       }
                   }
           }
         
        }catch(
Exception e){
            
System.out.println("Error al leer el fichero de configuracion.");
            
miInterfaz.insertar("Error al leer el fichero de configuracion.");
        
       }
finally{
              try{  
                if( 
null != fr ){   
                
fr.close();     
                }                  
            }catch (
Exception e2){ 
                 
System.out.println("Error al cerrar el fichero de configuracion.");
                 
miInterfaz.insertar("Error al cerrar el fichero de configuracion.");
            }
        }
   }
// fin 
y cuando quito el archivo de configuracion del directorio me genera la siguiente excepcion:
Código PHP:
Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java
.io.Reader.<init>(Reader.java:78)
    
at java.io.BufferedReader.<init>(BufferedReader.java:94)
    
at java.io.BufferedReader.<init>(BufferedReader.java:109)
    
at codigoV1.Ficheros.cargarFichero(Ficheros.java:48)
    
at codigoV1.Conexion.IniciarVariables(Conexion.java:61)
    
at codigoV1.Interfaz.iniciarActionPerformed(Interfaz.java:240)
    
at codigoV1.Interfaz.access$000(Interfaz.java:17)
    
at codigoV1.Interfaz$1.actionPerformed(Interfaz.java:70)
    
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    
at java.awt.Component.processMouseEvent(Component.java:6504)
    
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    
at java.awt.Component.processEvent(Component.java:6269)
    
at java.awt.Container.processEvent(Container.java:2229)
    
at java.awt.Component.dispatchEventImpl(Component.java:4860)
    
at java.awt.Container.dispatchEventImpl(Container.java:2287)
    
at java.awt.Component.dispatchEvent(Component.java:4686)
    
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    
at java.awt.Container.dispatchEventImpl(Container.java:2273)
    
at java.awt.Window.dispatchEventImpl(Window.java:2713)
    
at java.awt.Component.dispatchEvent(Component.java:4686)
    
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    
at java.awt.EventQueue.access$000(EventQueue.java:101)
    
at java.awt.EventQueue$3.run(EventQueue.java:666)
    
at java.awt.EventQueue$3.run(EventQueue.java:664)
    
at java.security.AccessController.doPrivileged(Native Method)
    
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    
at java.awt.EventQueue$4.run(EventQueue.java:680)
    
at java.awt.EventQueue$4.run(EventQueue.java:678)
    
at java.security.AccessController.doPrivileged(Native Method)
    
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    
at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    
at java.awt.EventDispatchThread.run(EventDispatchThread.java:90
Mi duda es que yo pensaba que la excepcion la tenia capturada, por eso me sale:" Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado."
y que ahi se detendria el programa porque no puede leer ese fichero pero no,me salen todo ese otro monton de lineas y no se porque,alguna idea.

Gracias

Saludos
  #2 (permalink)  
Antiguo 13/01/2012, 07:36
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: excepciones

Lo que pasa es que atrapas la excepcion, pero la demas parte del codigo este fuera del try-catch

Código Javascript:
Ver original
  1. archivo = new File (ARCHIVO_CONFIGURACION);
  2.         try {
  3.             fr = new FileReader (archivo);
  4.         } catch (FileNotFoundException ex) {
  5.             System.out.println("Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado.");
  6.             miInterfaz.insertar("Error al abrir el fichero de configuracion.El fichero no se encuentra en el directorio adecuado.Ponga la carpeta en el escritorio");
  7.         }
  8.          
  9.         br = new BufferedReader(fr);

Al codigo encontrar una exception, entra en el catch, pero luego de eso continua su ejecucion normalmente.

Debes insertar todo lo relacionado al archivo dentro de 1 try catch para que al encontrar un problema salga y no continue ejecutandose mas codigo.

La excepcion que te muestra es en la linea: br = new BufferedReader(fr);
Es lo unico que no esta dentro de un try/catch y envia una excepcion en tiempo de ejecucion al tu pasarle null.
  #3 (permalink)  
Antiguo 13/01/2012, 08:18
Avatar de godisa  
Fecha de Ingreso: noviembre-2011
Mensajes: 46
Antigüedad: 12 años, 5 meses
Puntos: 1
Respuesta: excepciones

gracias :D

Etiquetas: excepciones, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:33.