C# Exceptions

Giới thiệu về C# Exceptions

C# Exceptions (Ngoại lệ trong C#) là một cơ chế xử lý lỗi trong ứng dụng. Khi một vấn đề phát sinh trong quá trình thực thi (như lỗi chia cho 0, truy cập vào một phần tử không có trong danh sách, v.v.), C# sẽ tạo ra một đối tượng ngoại lệ để thông báo rằng có điều gì đó không đúng, giúp lập trình viên có khả năng xử lý lỗi một cách hiệu quả.

Định nghĩa và Ý nghĩa

Ngoại lệ trong C# là một sự kiện không mong đợi xảy ra trong quá trình thực hiện chương trình, dẫn đến việc chương trình phải dừng lại hoặc xử lý lỗi một cách đặc biệt. Việc quản lý ngoại lệ giúp cải thiện tính ổn định của ứng dụng bằng cách cho phép kiểm soát các lỗi có thể xảy ra và thực hiện các hành động phù hợp để xử lý chúng.

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

Cú pháp cơ bản để xử lý ngoại lệ trong C# sử dụng các khối try, catchfinally:

try {
    // Mã có thể gây ra ngoại lệ
} catch (ExceptionType ex) {
    // Xử lý lỗi
} finally {
    // Mã sẽ luôn được thực thi, dù có xảy ra ngoại lệ hay không
}

Các loại ngoại lệ

C# bao gồm nhiều loại ngoại lệ, từ các ngoại lệ chuẩn như DivideByZeroException, NullReferenceException đến các ngoại lệ tùy chỉnh do lập trình viên định nghĩa. Dưới đây là một số loại ngoại lệ phổ biến:

  • ArgumentException: Khi một tham số không hợp lệ được truyền vào phương thức.
  • IndexOutOfRangeException: Khi cố gắng truy cập vào một chỉ số ngoài phạm vi của mảng.
  • InvalidOperationException: Khi một phương thức được gọi trong trạng thái không hợp lệ.

Ví dụ về xử lý ngoại lệ

Dưới đây là một ví dụ đơn giản về việc chia hai số với xử lý ngoại lệ:

using System;

class Program {
    static void Main() {
        try {
            Console.Write("Nhập số tử: ");
            int numerator = Convert.ToInt32(Console.ReadLine());
            Console.Write("Nhập số mẫu: ");
            int denominator = Convert.ToInt32(Console.ReadLine());
            int result = numerator / denominator;
            Console.WriteLine("Kết quả: " + result);
        } catch (DivideByZeroException ex) {
            Console.WriteLine("Lỗi: Không thể chia cho 0.");
        } catch (FormatException ex) {
            Console.WriteLine("Lỗi: Vui lòng nhập một số hợp lệ.");
        } catch (Exception ex) {
            Console.WriteLine("Lỗi: " + ex.Message);
        } finally {
            Console.WriteLine("Kết thúc quá trình xử lý.");
        }
    }
}

Kết luận

Xử lý ngoại lệ là một phần quan trọng trong lập trình với C#. Nó giúp chương trình của bạn trở nên mạnh mẽ và dễ quản lý hơn. Bằng cách sử dụng các khối try, catch, và finally, lập trình viên có thể dễ dàng bắt và xử lý các ngoại lệ, ngăn chặn ứng dụng bị sập và cung cấp trải nghiệm người dùng tốt hơn.