예외가 발생하면 일반적인 방법의 실행은 가파른 비선형 회전이됩니다. 방법이 인코딩되는 방법에 따라 예외로 인해 방법이 조기에 반환 될 수 있습니다. 이것은 일부 방법에서 문제입니다. 예를 들어, 메소드가 파일 항목을 열고 닫은 다음 종료되면 예외 처리 메커니즘으로 파일을 닫는 코드가 원하지 않습니다. 마지막으로 키워드는 이러한 사고를 처리하도록 설계되었습니다.
마지막으로 코드 블록을 만듭니다. 이 코드 블록은 한 번의 시도/캐치 블록이 완료된 후 다른 시도/캐치가 나타나기 전에 실행됩니다. 마지막으로 블록은 예외가 발생했는지 여부에 관계없이 실행됩니다. 예외가 발생하면 예외와 일치하는 캐치 조항이 없어도 마침내 실행됩니다. 메소드는 시도/캐치 블록에서 호출 프로그램으로 호출 프로그램으로 반환됩니다. 이는 파일 핸들을 닫고 방법 시작시 할당 된 다른 리소스를 제거 할 때 유용합니다. 마지막 절은 선택 사항이든 관계없이 선택 사항입니다. 그러나 각 시도 명세서에는 적어도 하나의 캐치 또는 조항이 필요합니다.
다음 예제는 3 가지 다른 종료 방법을 보여줍니다. 각각은 마지막 절을 실행합니다.
// mass.class demo {// 정적 void proca ()를 통해 {system.out.println ( "Deca"); System.out.println (Proca 's Minale}} // static void procb () {system.out.println ( "Inside ProcB"); out.println (Procb 's}} // 정상적인 try void procc (). "마지막으로"} public static void main (try {proca ()} {System.out.println ( "예외"); ();}}
이 예에서 Proca ()는 예외를 던져서 시도를 조기에 방해합니다. 최종 조항은 출구에서 실행됩니다. ProcB () Try 문은 반환 문을 통해 종료됩니다. 최종 조항은 procb ()가 반환하기 전에 실행됩니다. Procc ()에서 Try 문은 정상적으로 오류없이 실행됩니다. 그러나 마지막으로 블록이 여전히 실행됩니다.
참고 : 마침내 블록이 시도와 함께 사용되면 시도가 끝나기 전에 최종 블록이 실행됩니다.
다음은 위 프로그램에서 생성 된 출력입니다.
Procaproca의 마침내 예를 잡았습니다