Ho una classe principale Java, nella classe, inizio un nuovo thread, nella maggior parte dei casi attende che il thread muoia. Ad un certo momento, lancio un'eccezione di runtime dal thread, ma non riesco a rilevare l'eccezione generata dal thread nella classe principale.
Ecco il codice:
public class Test extends Thread
{
public static void main(String[] args) throws InterruptedException
{
Test t = new Test();
try
{
t.start();
t.join();
}
catch(RuntimeException e)
{
System.out.println("** RuntimeException from main");
}
System.out.println("Main stoped");
}
@Override
public void run()
{
try
{
while(true)
{
System.out.println("** Started");
sleep(2000);
throw new RuntimeException("exception from thread");
}
}
catch (RuntimeException e)
{
System.out.println("** RuntimeException from thread");
throw e;
}
catch (InterruptedException e)
{
}
}
}
Qualcuno sa perché?