Saya memiliki kelas utama Java, di kelas, saya memulai utas baru, di utas, menunggu sampai utas mati. Pada suatu saat, saya melempar pengecualian runtime dari utas, tetapi saya tidak dapat menangkap pengecualian yang dilemparkan dari utas di kelas utama.
Ini kodenya:
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)
{
}
}
}
Adakah yang tahu mengapa?