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 và 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 và 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