try/catch 블록을 사용하지 않고 finally 블록을 사용하려고 시도하지만 Eclipse에서 오류가 발생합니다.try & catch없이 finally 블록을 사용하는 것이 유효합니까?
try/catch 블록을 사용하지 않고 finally 블록을 사용할 수 있습니까?
try/catch 블록을 사용하지 않고 finally 블록을 사용하려고 시도하지만 Eclipse에서 오류가 발생합니다.try & catch없이 finally 블록을 사용하는 것이 유효합니까?
try/catch 블록을 사용하지 않고 finally 블록을 사용할 수 있습니까?
finally
은 적어도 try
블록이어야하며, catch
은 선택 사항입니다. finally 블록의 요점은 예외가 발생했는지 여부에 관계없이 내용이 정리되었는지 확인하는 것입니다. JLS
최종적으로 절에 따라, finally 블록은 try 블록과 상관없이 컨트롤이 try 블록 또는 catch 블록 나뭇잎 방법, 실행되지 않을 수 있습니다 어떤 catch 블록 후 실행되도록합니다.
그러므로 finally
앞에는 항상 try
블록이 있어야합니다.
블록이 finally
인 try
블록이 있어야합니다. try
블록은 어떤 코드 행 뒤에 finally
코드가 올지를 정의합니다. try
블록 이전에 예외가 발생하면 finally
코드가 실행되지 않습니다. catch
블록을 추가
는 선택 사항입니다 :
try {
// something
} finally {
// guaranteed to run if execution enters the try block
}
마침내 블록 항상 때 try 블록 종료를 실행합니다. 따라서 잡을 필요없이 마침내 사용할 수 있지만 try를 사용해야합니다. 자세한 내용은
오라클 트레일에서 여기
doc을 확인하십시오
마지막으로 항상 차단할 때 try 블록 종료를 실행합니다. 이 은 예기치 않은 예외가 발생하더라도 finally 블록이 실행되도록합니다.
위의 설명에서 마침내 단독으로 차단할 수 없습니다. 허용되는 조합은 다음과 같습니다.
는 캐치
프로그램 제어 흐름이 유입되면 실행할 finally
블록 내의 코드 보장 마지막
시도 마침내
시도 캐치 시도 코르 응답 try
블록. 따라서 없이 finally
을 갖는 것은 이치에 맞지 않습니다.
유일한 예외는 finally
블록 전에 프로그램이 System.exit(...)
블록을 만나면 가상 컴퓨터가 종료되기 때문입니다.
아니 당신이
당신이 try
없이 Try-catch-finally
또는
try {
}catch (Exception e){
}
finally{
}
또는
try {
}
finally{
}
try-finally
는 이유는 왜 당신이 finally
를 가질 수 없습니다 사용할 수 없습니다입니다 당신이 수 있기 때문에에는 복수 finally
상태가 있습니다. 동일한 범위에있는 try
은 오류가 발생할 경우 finally
과 관련된 코드 블록을 나타냅니다.
finally
의 또 다른 흥미로운 특징은 try
이 입력 된시기에 관계없이 실행해야한다는 것입니다. 예를 들어 goto
을 사용하여 finally
문을 건너 뛰면 어떻게 될까요? goto
이 try
안에 있으면 finally
문을 실행하지만 goto
문이 try
문구 위/밖에 있으면 finally
코드를 건너 뜁니다. finally
은 try
으로 둘러싸인 코드에만 관련이 있습니다. 시도가 없다면 finally
은 아무 관련이 없습니다.
try {
// Block of code with multiple exit points
}
finally {
// Block of code that must always be executed when the try block
// is exited, no matter how the try block is exited
}
설명을 추가해야합니다. – Zelldon
앞에'당신이이'goto'는'finally' 문을 통해 건너 사용할 경우'finally' 행동 할 것입니다 방법 try'? 'finally'는'try' 문과 관련이 있다고 표시된 코드에만 관련이 있습니다. 그렇지 않으면 동작이 매우 성가 시게됩니다. – CodeCamper
catch 블록을 사용하지 않고 try-with-finally의 사용 사례는 무엇입니까? 나는 당신이 단지 "마침내"사용할 수 없다고 생각합니다. try 블록을 사용해야합니다. – user1923551