Xử lý ngoại lệ

2 minute read

I. Cơ bản của Java:

D. Xử lý ngoại lệ:

Trong Java, xử lý ngoại lệ (exception handling) là quá trình điều khiển và xử lý các tình huống ngoại lệ xảy ra trong quá trình thực thi chương trình. Các ngoại lệ có thể xảy ra do nhiều nguyên nhân, bao gồm lỗi cú pháp, lỗi thời gian chạy (runtime errors), hoặc điều kiện không mong muốn trong chương trình.

  1. Cú pháp xử lý ngoại lệ:

    • Trong Java, xử lý ngoại lệ được thực hiện bằng cách sử dụng cấu trúc try, catch, và finally.
    • Cú pháp:
      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      try {
          // Mã có thể gây ra ngoại lệ
      } catch (ExceptionType1 e1) {
          // Xử lý ngoại lệ ExceptionType1
      } catch (ExceptionType2 e2) {
          // Xử lý ngoại lệ ExceptionType2
      } finally {
          // Mã trong finally sẽ được thực thi bất kể có ngoại lệ hay không
      }
      
    • Trong đó:
      • Khối try chứa mã có thể gây ra ngoại lệ.
      • Khối catch được sử dụng để xử lý các loại ngoại lệ cụ thể.
      • Khối finally chứa mã sẽ được thực thi sau khi khối try hoặc catch kết thúc, dù có ngoại lệ xảy ra hay không.
  2. Throw và Throws:

    • throw được sử dụng để ném một ngoại lệ tùy chỉnh từ một phương thức hoặc khối mã.
    • throws được sử dụng để khai báo ngoại lệ có thể xảy ra từ một phương thức nhất định.
  3. Ví dụ:

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    
    public class ExceptionHandlingExample {
        public static void main(String[] args) {
            try {
                int result = divide(10, 0);
                System.out.println("Result: " + result);
            } catch (ArithmeticException e) {
                System.out.println("Error: " + e.getMessage());
            } finally {
                System.out.println("Finally block executed");
            }
        }
    
        public static int divide(int a, int b) {
            if (b == 0) {
                throw new ArithmeticException("Divide by zero");
            }
            return a / b;
        }
    }
    

    Trong ví dụ này, phương thức divide ném một ngoại lệ ArithmeticException nếu b bằng 0. Trong main, chúng ta sử dụng try-catch để xử lý ngoại lệ và finally để thực hiện các hành động cuối cùng.

Xử lý ngoại lệ là một phần quan trọng trong việc viết mã Java an toàn và ổn định, đặc biệt là khi làm việc với các tác vụ mạo hiểm hoặc không đảm bảo.