2011-03-02 20 views

Respuesta

13

Sí, con la excepción de cualquier finally bloques, o si hay un controlador de excepción dentro de la función que puede detectar el tipo de excepción que está lanzando.

0

Sí, sí. Genera una excepción que sube la pila de llamadas.

+0

¿Hay algún bloque final de Java que pueda modular esta respuesta? – PypeBros

+0

Hay, sí. Obtienes el típico try, catch, finalmente manejo de excepciones en la parte superior de la pila. – FarligOpptreden

0

Sí. Se dirigirá al bloque catch más cercano.

1

¿Lo intentó? :)

Supongo que la respuesta correcta es, depende. Si envolvió el tiro con un try/catch por cualquier razón extraña, entonces no. Si no lo hizo, entonces sí, a menos que no haya detectado la excepción en algún lugar de la pila de llamadas, en cuyo caso su aplicación se bloqueará.

1

Sí, a menos que cogerlo o tener un bloque finally:

try { 
    var foo = 42 /0; 
} 
finally 
{ 
    // This will execute after the exception has been thrown 
} 
+0

... y en el caso de finalmente, el método actual se cerrará de todos modos, es decir, el código después no se ejecutará. –

5

El control pasa a la siguiente gestor de excepciones (catch bloque) en la pila de llamadas, ya sea en el método actual o uno de sus padres Si el throw no está encapsulado en un bloque try/catch, todos los bloques finally se ejecutarán antes de buscar un bloque catch padre.

0

Una excepción es un evento que ocurrió cuando no se suponía que así fuera, por lo que la aplicación no sabe qué hacer con dicho evento. En todos los lenguajes de OOP (que yo sepa) lo que hace el tiempo de ejecución es detener la función que llamó al evento y luego lanzar la excepción a la pila hasta que alguien sepa qué hacer con ella. Ahí es donde entran los bloques try/catch.

Cuestiones relacionadas