2014-09-05 2 views
0

main() 메소드가 다음과 같이 선언 될 때 JVM이 Exception을 처리합니까?작성시 JVM이 예외를 처리합니까?

public static void main(String[] args) throws Exception { 
    // code here 
} 
+0

컴파일 할 예정입니까? – cHao

+0

@cHao 예. – Kon

+0

예, 컴파일됩니다. 경고 또는 오류 메시지가 컴파일러에서 제공되지 않았습니다. – Killer

답변

2

예, 예외는 JVM에서 default exception handler으로 처리됩니다.

당신이 중 하나를 사용하여이 스레드의 행동, 스레드 그룹 또는 VM 수준을 변경할 수 있습니다

: 간단한 예를 들어

  • Thread.setUncaughtExceptionhandler()
  • ThreadGroup.uncaughtException()
  • Thread.setDefaultUncaughtExceptionHandler()

:

public class Program {  
    public static void main(String[] args) { 
     Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {   
      @Override 
      public void uncaughtException(Thread t, Throwable e) { 
       System.err.println("Uhhh something broke.");  
      } 
     }); 

     int a = 5/0; 
    } 
} 

출력 :

Uhhh something broke. 
+0

정보를 제공해 주셔서 감사합니다. 모르겠습니다. – Killer

3

예, 사용자가 직접 호출하지 않는 한 스택 추적을 인쇄합니다. 이 경우, 당신은 그것을 처리합니다.

관련 문제