아니요, try, catch 및 finally 블록 사이에 명령문을 작성할 수 없습니다. 이러한 블록은 하나의 단위를 형성합니다. 시도 의 기능 키워드는 예외 개체를 식별하고 해당 예외 개체를 catch하고 식별된 예외 개체와 함께 제어를 catch 블록으로 전송하는 것입니다. try 블록 실행을 일시 중단하여 . catch block의 기능 try 에 의해 전송된 예외 클래스 개체를 수신하는 것입니다. 잡기 해당 예외 클래스 개체를 만들고 해당 예외 클래스 개체를 catch 에 정의된 해당 예외 클래스의 참조에 할당합니다. 차단 . 최종 차단 예외와 상관없이 강제 실행되는 블록입니다.
catch 블록으로 시도와 같은 명령문을 작성할 수 있습니다. , 여러 catch 블록으로 시도 , finally 차단으로 시도 catch 및 finally 블록으로 시도 이러한 조합 사이에 코드나 명령문을 작성할 수 없습니다. 이 블록 사이에 명령문을 넣으려고 하면 컴파일 시간 오류가 발생합니다.
구문
try { // Statements to be monitored for exceptions } // We can't keep any statements here catch(Exception ex){ // Catching the exceptions here } // We can't keep any statements here finally{ // finally block is optional and can only exist if try or try-catch block is there. // This block is always executed whether exception is occurred in the try block or not // and occurred exception is caught in the catch block or not. // finally block is not executed only for System.exit() and if any Error occurred. }
예
public class ExceptionHandlingTest { public static void main(String[] args) { System.out.println("We can keep any number of statements here"); try { int i = 10/0; // This statement throws ArithmeticException System.out.println("This statement will not be executed"); } //We can't keep statements here catch(ArithmeticException ex){ System.out.println("This block is executed immediately after an exception is thrown"); } //We can't keep statements here finally { System.out.println("This block is always executed"); } System.out.println("We can keep any number of statements here"); } }
출력
We can keep any number of statements here This block is executed immediately after an exception is thrown This block is always executed We can keep any number of statements here