JAVA에서는 Exception handling exercise를 거치면서 여러 가지를 혼동합니다. 기본적으로 내가 이해하지 못하는 것은 예외가 발생할 때 프로그램의 흐름이 어떻게 발생 하는지를 설명하는 것입니다. 다음 시나리오에서 실제로 프로그램의 흐름이 어떻게 일어나는지, 그리고 개념에 대한 내 이해가 옳은지 또는 잘못되었는지를 이해하고 싶습니다.JAVA의 이해 키워드 throw
public void myFunction(){
try{
//Some code......
}catch(Exception e1){
//If this Exception is occured handle it here.
}catch(Exception e2){
//if this exception has occured then
throw new myException("whatever message required");
}
finally{
//code that has to be executed
}
}
지금 나의 이해는 무엇인가 :
예외가없는 설치 1. 코드가 원활하게 실행하고 결국 finally 블록의 코드가 2.If 예외 E1은이 잡힌 후 발생 실행됩니다 후 발생 첫 번째 catch 블록에서는 적절하게 처리되고 마지막으로 블록이 실행됩니다. 3. 예외 e2가 발생하면 어떻게됩니까? catch 블록에서 우리는 새로운 예외를 throw합니다. 그래서 myFunction을 호출하는 메서드는 this를 처리 할 수있는 메커니즘을 제공해야합니다. myException? 그래서 실행은 호출하는 메소드의 catch 블록으로 전달됩니다. 맞습니까? 그렇다면 myFunction()의 "finally"블록은 어떻게 될까요? 그 때 실행되지 않을 것인가? 프로그램의 흐름은 어떻습니까? 나는 정말로 우리가 "던짐"을 사용할 때 일어나는 일을 열심히 찾는다. 우리가 그것을 사용할 때 실제로 일어나는 일은 무엇입니까?
보기 : e1과 e2 모두 동일한 유형입니다. 예외, catch (Exception e2)가 실행될 기회가없는 이유입니다. –