Java | Manejo de excepciones | Pregunta 7

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *