Given:
public class Main {
public static void main(String[] args) throws Exception {
doSomething();
}
private static void doSomething() throws Exception {
System.out.println("Before if clause");
if (Math.random()
> 0.5) {
throw new Exception();
}
System.out.println("After if clause");
}
}
Which two
are possible outputs?
A.
Before if clause
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
Before if clause
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
B.
Before if clause
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
After if clause
Before if clause
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
After if clause
C.
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
Exception in thread “main” java.lang.Exception
At Main.doSomething (Main.java:8)
At Main.main (Main.java:3)
D.
Before if clause
After if clause
Before if clause
After if clause
Risposta : A e D
In ogni caso per prima cosa viene stampato :
Before if clause
Quindi la risposta C è esclusa.
A seconda della funziona matematica casuale si può entrare nella cattura dell'eccezione : throw new Exception(); il che scatena l'eccezione e l'uscita :
Exception in thread "main" java.lang.Exception
Before if clause
Quindi la risposta C è esclusa.
A seconda della funziona matematica casuale si può entrare nella cattura dell'eccezione : throw new Exception(); il che scatena l'eccezione e l'uscita :
Exception in thread "main" java.lang.Exception
Oppure si prosegue evitando l'eccezione e quindi si stampa :
After if clause
After if clause
Quindi
A:
Before if clause
Exception in thread "main" java.lang.Exception
Before if clause
Exception in thread "main" java.lang.Exception
D:
Before if clause
After if clause
Before if clause
After if clause
Nessun commento:
Posta un commento