2017-12-08 10 views
1

왜 스택 추적이 Exception in thread "main" java.lang.ArithmeticException: 3 이고 Exception in thread "main" java.lang.ArithmeticException: 1이 아닌지? 먼저 ArithmeticException("1")이 던지지 않습니까?예외 처리 순서

try{ 
     try{ 
      throw new ArithmeticException("1"); 
     }finally{ 
      throw new ArithmeticException("2"); 
     } 
    }finally{ 
     throw new ArithmeticException("3"); 
    } 
+0

마지막으로 throw 된 예외는 finally 블록에서 발생합니다. – prsvr

답변

4

예, 우선 "1" 예외가 발생합니다. 그러나 :

finally은 try 블록에서 throw 된 예외를 덮어 쓰므로 finally 예외가 예외 처리 코드에서 볼 수있는 유일한 예외입니다.

정확히 말하면 최종 블록을 던지거나 반환하지 마십시오.

자세한 내용은 Google's Error Prone documentation에서이 문제의 설명을 참조하십시오.

+0

깔끔하고 정확한 ... 주제 이외의 요청 :이 [질문] (https://stackoverflow.com/questions/47729575/is-there-a-way-of-gson-to-be-not- 모두 관대 한) 최근에 어떤 피드백도 보지 못했습니다. 나는 현상금을 드리는 것을 고려합니다. 그러나 그렇게하기 전에 : 질문이 합리적이라고 생각합니까? 아니면 개선 할 수있는 것이 있습니까? – GhostCat