Código de ejemplo:
public class TestMain {
public static void main(String[] args) {
try {
System.out.println("1");
} catch (Exception e) {
System.out.println("2");
} finally {
System.out.println("3");
}
}
}
salida:
Vistazo a un código de ejemplo aparecerá II anormal:
public class TestMain {
public static void main(String[] args) {
try {
int i = 1 / 0;
} catch (Exception e) {
System.out.println("2");
} finally {
System.out.println("3");
}
}
}
salida:
Se puede ver a partir de los dos resultados, si no hay ninguna anormalidad, se ejecutará el fin bloque de código.
Por lo que finalmente se ejecutará bloque de código
Directamente desde el nivel de código de bytes, para analizar las razones
Una parte del código de bytes de código de ejemplo:
Ejemplo de código de dos bytes sección de código:
Más marcado uno, dos, tres (3) de sección de código byte, representa una porción del bloque try de la lógica, la segunda parte representa la lógica bloque catch representan las tres partes en la lógica bloque finalmente (no hay código de bytes la división es muy claro, simplemente con el fin de analizar más o menos trazar las fronteras de tres partes)
Se puede encontrar a continuación, una parte de las dos partes de código de bytes aparecen tres partes.
resumen
Bytecode ejemplos anteriores se puede concluir, compilador de Java para compilar el código, finalmente bloquear los contenidos, copiar, todo se colocaron en el bloque try y un bloque catch ruta de ejecución normal y anormal ruta de ejecución de la salida, desde donde el código de bytes descompilar, finalmente, también es fácil de ver en la presencia de múltiples copias del código de bytes, por lo que finalmente va a bloquear la ejecución.