Menu
CoddyTech

Nhiều khối catch

Thuộc phần Logic và luồng chương trình trong hành trình C# của Coddy. Bài học 25 trên 66.

Nhiều khối catch giúp bạn xử lý các loại ngoại lệ khác nhau bằng đoạn code riêng cho từng loại ngoại lệ.

Bắt đầu với khối lệnh try cơ bản:

try
{
    int number = int.Parse("abc");
}

Thêm khối catch để xử lý một ngoại lệ cụ thể:

try
{
    int number = int.Parse("abc");
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}

Bạn có thể thêm nhiều khối catch để xử lý các ngoại lệ khác nhau:

try
{
    int number = int.Parse("abc");
    int result = 10 / number;
}
catch (FormatException ex)
{
    Console.WriteLine("Format Exception: " + ex.Message);
}
catch (DivideByZeroException ex)
{
    Console.WriteLine("Divide By Zero Exception: " + ex.Message);
}

Khối catch đầu tiên khớp sẽ chạy. Hãy sắp xếp các khối catch từ kiểu ngoại lệ cụ thể nhất đến tổng quát nhất.

challenge icon

Thử thách

Dễ

Tạo một phương thức có tên DivideNumbers nhận hai tham số chuỗi:

  • numeratorStr: chuỗi biểu thị tử số
  • denominatorStr: chuỗi biểu thị mẫu số

Phương thức cần:

  1. Thử phân tích cú pháp cả hai chuỗi thành số nguyên
  2. Thử chia tử số cho mẫu số
  3. Trả về kết quả dưới dạng số nguyên
  4. Xử lý FormatException bằng cách in ra "Invalid format" và trả về 0
  5. Xử lý DivideByZeroException bằng cách in ra "Cannot divide by zero" và trả về 0
  6. Xử lý mọi ngoại lệ khác bằng khối catch tổng quát, in ra "An error occurred" và trả về 0

Tự làm thử

using System;

public class Program
{
    public static int DivideNumbers(string numeratorStr, string denominatorStr)
    {
        // Viết code của bạn ở đây
    }
    
    public static void Main(string[] args)
    {
        string numeratorStr = Console.ReadLine();
        string denominatorStr = Console.ReadLine();
        
        int result = DivideNumbers(numeratorStr, denominatorStr);
        Console.WriteLine("Result: " + result);
    }
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch C# online