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)
{
}
}
}
왜 그 이유를 아는 사람이 있습니까?