私はJavaメインクラスを持っています。クラスでは、新しいスレッドを開始します。メインでは、スレッドが終了するまで待機します。ある時点で、スレッドからランタイム例外をスローしましたが、メインクラスのスレッドからスローされた例外をキャッチできません。
これがコードです:
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)
{
}
}
}
誰かが理由を知っていますか?