maracaibo25 ha scritto:
però scusami appunto perché viene catturata la MyException non va a fare poi la stampa di A ? Scusami se insisto
In method1() c'è un catch (RuntimeException re). Questo catch è in grado di catturare qualunque oggetto eccezione che è esattamente RuntimeException
oppure un sottotipo di RuntimeException (sì, il catch di un tipo X considera ANCHE i sottotipi).
Quindi quando nel try viene lanciato (uno dei due "a caso")
throws Math.random() > 0.5 ? new MyException() : new RuntimeException ();
RuntimeException viene catturato dal catch.
MyException essendo una estensione di RuntimeException viene comunque catturato dal catch.
Quindi nessuna delle due eccezioni esce da method1() pertanto viene sempre stampato "B".