Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

unidades:07_arquitectura:02_excepciones [2012/09/23 23:17]
admin [Excepciones]
unidades:07_arquitectura:02_excepciones [2016/07/03 20:35] (actual)
Línea 22: Línea 22:
         }         }
     } catch (Exception exc) {     } catch (Exception exc) {
-        log.error("Falló al hacer un rollback", exc);+        LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
     }     }
     throw new BussinessException(cve);                 throw new BussinessException(cve);            
Línea 31: Línea 31:
         }         }
     } catch (Exception exc) {     } catch (Exception exc) {
-        log.error("Falló al hacer un rollback", exc);+        LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
     }     }
     throw new BussinessException(cve);     throw new BussinessException(cve);
Línea 40: Línea 40:
         }         }
     } catch (Exception exc) {     } catch (Exception exc) {
-        log.error("Falló al hacer un rollback", exc);+        LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
     }     }
     throw ex;                    throw ex;               
Línea 49: Línea 49:
         }         }
     } catch (Exception exc) {     } catch (Exception exc) {
-        log.error("Falló al hacer un rollback", exc);+        LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
     }     }
     throw ex;     throw ex;
Línea 58: Línea 58:
         }         }
     } catch (Exception exc) {     } catch (Exception exc) {
-        log.error("Falló al hacer un rollback", exc);+        LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
     }     }
     throw new RuntimeException(ex);     throw new RuntimeException(ex);
Línea 72: Línea 72:
     }     }
 } catch (Exception exc) { } catch (Exception exc) {
-    log.error("Falló al hacer un rollback", exc);+    LOGGER.log(Level.WARNING,"Falló al hacer un rollback", exc);
 } }
 </code> </code>
  
-La propiedad ''log'' la definiremos como una propiedad a nivel de clase usando [[http://commons.apache.org/logging/|Apache Common Loggin]] de la siguiente forma:+La propiedad estática ''LOGGER'' la definiremos como una propiedad a nivel de clase usando [[http://docs.oracle.com/javase/6/docs/technotes/guides/logging/|Java Logging APIs]] de la siguiente forma:
 <code java> <code java>
-protected final Log log LogFactory.getLog(getClass());+private final static Logger LOGGER Logger.getLogger(ProfesorController.class .getName());
 </code> </code>
  
 Veamos ahora el tratamiento individualizado para cada una de ellas: Veamos ahora el tratamiento individualizado para cada una de ellas:
- 
 ==== RuntimeException ==== ==== RuntimeException ====
 Si la excepción es de tipo ''RuntimeException'' lo único que hacemos es volver a relanzar la misma excepción mediante: Si la excepción es de tipo ''RuntimeException'' lo único que hacemos es volver a relanzar la misma excepción mediante:
Línea 95: Línea 94:
 </code> </code>
  
-De esa forma evitamos la obligación de tratar las Checked Exceptions de Java+De esa forma evitamos la obligación de tratar las Checked Exceptions de Java cuando no sabemos que hacer con ella.
- +
-<note tip> +
-En la comunidad Java siempre hay un gran debate al respecto de las Checked Exceptions vs Unchecked Exceptions. +
- +
-Mi opinión personal es que sólo aquellas excepciones de las que nos podemos recuperar deberían ser Checked Exceptions. El resto deberían ser Unchecked Exceptions.  +
- +
-Por degracia en muchas clases del JDK se han usado Checked Exceptions para errores en los que era poco probable que pudieramos solucionar algo. Un ejemplo de ello es el API de JDBC , en el que la mayoría de métodos lanzaban la Checked Exception <javadoc jdk7>java.sql.SQLException</javadoc>. +
- +
-Por otro lado Hibernate eligió la opción opuesta y lanza Unchecked Exception mediante <javadoc h41>org.hibernate.HibernateException</javadoc>. +
-</note>+
  
 ==== javax.validation.ConstraintViolationException ==== ==== javax.validation.ConstraintViolationException ====
Línea 120: Línea 109:
  
 ==== BussinessException  ==== ==== BussinessException  ====
-Si se produce ésta excepción simplemente la volveremos a relanzar sin modificar nada ya que queremos que se //vea// ta y como es. +Si se produce ésta excepción simplemente la volveremos a relanzar sin modificar nada ya que queremos que se //vea// tal y como es. 
 <code java> <code java>
 throw ex; throw ex;
Línea 164: Línea 153:
 <uml> <uml>
 class BussinessException class BussinessException
 +BussinessException : Set<BussinessMessage> getBussinessMessages()
 +
 class BussinessMessage class BussinessMessage
  
Línea 172: Línea 163:
  
 class ConstraintViolationException class ConstraintViolationException
 +ConstraintViolationException : Set<ConstraintViolation> getConstraintViolations() 
 +
 class ConstraintViolation class ConstraintViolation
  
Línea 497: Línea 490:
 fieldName=getCaptions(constraintViolation.getRootBeanClass(), constraintViolation.getPropertyPath()); fieldName=getCaptions(constraintViolation.getRootBeanClass(), constraintViolation.getPropertyPath());
 </code> </code>
 +
 +<note>
 +Para la realización de éste código se han usado las clases <javadoc s31>org.springframework.util.ReflectionUtils</javadoc> y <javadoc s31>org.springframework.util.StringUtils</javadoc> del framework Spring. Estas clases son simple clases de utilidad con funciones sencillas. Para poder usarlas se ha incluido el jar ''org.springframework.core-3.1.2.RELEASE.jar''. En la siguiente sesión trataremos en profundidad el framework de Spring y explicaremos como instalarlo adecuadamente.Por ahora simplemente recordar el incluir el jar ''org.springframework.core-3.1.2.RELEASE.jar'' en los ejercicios que se realicen.
 +</note>
unidades/07_arquitectura/02_excepciones.1348435030.txt.gz · Última modificación: 2016/07/03 20:37 (editor externo)
Ir hasta arriba
CC Attribution-Noncommercial-Share Alike 3.0 Unported
chimeric.de = chi`s home Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0