Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 try, catch 및 finally 블록 사이에 명령문을 작성할 수 있습니까?

<시간/>

아니요, 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