Prediga la salida del siguiente programa.
class Test { String str = "a"; void A() { try { str +="b"; B(); } catch (Exception e) { str += "c"; } } void B() throws Exception { try { str += "d"; C(); } catch(Exception e) { throw new Exception(); } finally { str += "e"; } str += "f"; } void C() throws Exception { throw new Exception(); } void display() { System.out.println(str); } public static void main(String[] args) { Test object = new Test(); object.A(); object.display(); } }
(A) abdef
(B) abdec
(C) abdefc
Respuesta: (B)
Explicación: la palabra clave ‘lanzar’ se usa para lanzar explícitamente una excepción.
finalmente el bloque siempre se ejecuta incluso cuando ocurre una excepción.
La llamada al método C() genera una excepción. Por lo tanto, el control entra en el bloque catch del método B() que nuevamente arroja una excepción. Entonces, el control va en el bloque catch del método A().
Cuestionario de esta pregunta
Comente a continuación si encuentra algo incorrecto en la publicación anterior
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA