Computer >> Máy Tính >  >> Lập trình >> Java

Chúng ta có thể viết bất kỳ câu lệnh nào giữa các khối try, catch và cuối cùng trong Java không?

Không, chúng tôi không thể viết bất kỳ câu lệnh nào giữa các khối try, catch và cuối cùng và các khối này tạo thành một đơn vị. Chức năng của try từ khóa là xác định một đối tượng ngoại lệ và bắt đối tượng ngoại lệ đó và chuyển điều khiển cùng với đối tượng ngoại lệ đã xác định vào khối bắt bằng cách tạm ngừng việc thực thi khối thử . Chức năng của khối bắt là nhận đối tượng lớp ngoại lệ đã được gửi bởi try bắt đối tượng lớp ngoại lệ đó và gán đối tượng lớp ngoại lệ đó cho tham chiếu của lớp ngoại lệ tương ứng được xác định trong catch khối . Khối cuối cùng s là các khối sẽ được thực thi bắt buộc bất kể ngoại lệ.

Chúng ta có thể viết các câu lệnh như thử với khối catch , thử với nhiều khối bắt , thử với khối cuối cùng thử với các khối bắt và cuối cùng và không thể viết bất kỳ mã hoặc câu lệnh nào giữa các kết hợp này. Nếu chúng tôi cố gắng đặt bất kỳ câu lệnh nào giữa các khối này, nó sẽ tạo ra lỗi thời gian biên dịch.

Cú pháp

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.
}

Ví dụ

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");
   }
}

Đầu ra

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