Hola amigos
Cual es la diferencia entre poner
try
{
//-- lo que sea
}
catch(Exception e)
{
//-- lo que sea
}
y poner en un metodo
public void nombreMetodo() throws Exception?
| |||
Diferencia de exceptions Hola amigos Cual es la diferencia entre poner try { //-- lo que sea } catch(Exception e) { //-- lo que sea } y poner en un metodo public void nombreMetodo() throws Exception? |
| ||||
con el primero, estas capturando la Exception, con el segundo la estas relanzando.... supon que con el bloque try/catch/finally capturas la exception y ahces con esta lo que quieras, ya sea enviar mensajes de error, o cerrar la conexion de una abse de datos, o lo que sea. con el throw, lo que haces es que cuando suceda un error, simplemente lo relanzas y en ese metodo no te importa. mirate en las FAQs del foro, ahi puse una explicacion mas amplia have funnnnnnnnn
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| ||||
mira esta FAQ: http://www.forosdelweb.com/showpost....97&postcount=9 cuando digo relanzar, me refiero que no haces nada con el error, simplemente lo lanzas.... ej: puedes poner esto en el main() public static void main(String[] arg)throws Exception{ } con esa instruccion, si se ocaciona un error, simplemente lo lanzas, y entonces se imprimira en pantalla, algo como esto:
Código:
en cambio, si en lugar de lanzarlas las capturas, puedes mandar algun mensaje, te recuperas del error, y tu aplicacion seguira corriendo. oracle.toplink.exceptions.DescriptorException.nullPointerWhileGettingValueThruInstanceVariableAccessor(DescriptorException.java:1204) at oracle.toplink.internal.descriptors.InstanceVariableAttributeAccessor.getAttributeValueFromObject(InstanceVariableAttributeAccessor.java:64) at oracle.toplink.mappings.DatabaseMapping.getAttributeValueFromObject(DatabaseMapping.java:352) at oracle.toplink.mappings.foundation.AbstractDirectMapping.buildExpression(AbstractDirectMapping.java:156) at oracle.toplink.internal.descriptors.ObjectBuilder.buildExpressionFromExample(ObjectBuilder.java:315) at oracle.toplink.internal.queryframework.QueryByExampleMechanism.buildSelectionCriteria(QueryByExampleMechanism.java:66) at oracle.toplink.queryframework.DatabaseQuery.buildSelectionCriteria(DatabaseQuery.java:283) at oracle.toplink.queryframework.ObjectLevelReadQuery.prePrepare(ObjectLevelReadQuery.java:1491) at oracle.toplink.queryframework.ReadObjectQuery.prePrepare(ReadObjectQuery.java:556) at oracle.toplink.queryframework.ObjectLevelReadQuery.checkPrePrepare(ObjectLevelReadQuery.java:569) at oracle.toplink.queryframework.ObjectLevelReadQuery.checkEarlyReturn(ObjectLevelReadQuery.java:498) at oracle.toplink.queryframework.DatabaseQuery.execute(DatabaseQuery.java:544) at oracle.toplink.queryframework.ObjectLevelReadQuery.execute(ObjectLevelReadQuery.java:768) at oracle.toplink.queryframework.ReadObjectQuery.execute(ReadObjectQuery.java:370) at oracle.toplink.publicinterface.Session.internalExecuteQuery(Session.java:2062) at oracle.toplink.publicinterface.Session.executeQuery(Session.java:981) at oracle.toplink.publicinterface.Session.executeQuery(Session.java:938) at com.cumquatit.demo.service.dao.wachtbestand.toplink.ToplinkSignaleringInWachtbestandDAO.findSignaleringBySomeId(ToplinkSignaleringInWachtbestandDAO.java:45) at com.cumquatit.demo.service.dao.wachtbestand.toplink.ToplinkSignaleringInWachtbestandDAOTest.testFindSignaleringBySomeId(ToplinkSignaleringInWachtbestandDAOTest.java:70) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at junit.framework.TestCase.runTest(TestCase.java:154) at junit.framework.TestCase.runBare(TestCase.java:127) at junit.framework.TestResult$1.protect(TestResult.java:106) at junit.framework.TestResult.runProtected(TestResult.jav
__________________ Curso de Angular JS - Haremos una app de principio a fin |
| ||||
es simplemente no tomarlas en cuenta, osea, si sucede un error en una linea, ahi termina la ejecucion de ese metodo, y ya continua ejecutando las demas lineas de abajo, simplemente lanza el error. ej: Código PHP: cerramos_la_conexion(); abrimos_un_socket(); establecemos_conexion_con_host(); enviamos_informacion(un_string); cerramos_socket(); por que la ejecucion se interrumpio por el error ocacionado, me explico? osea, este metodo no es capas de manipular los errores, simplemente no le interesa si sucede uno, simplemente lo lanza..... have funnnnn
__________________ Curso de Angular JS - Haremos una app de principio a fin |