Câu hỏi

Có cách nào để bắt nhiều exception cùng một lúc và không phải duplicate code trong C# không?

Câu trả lời

Trong C#, bạn có thể bắt nhiều exception cùng một lúc mà không cần phải duplicate code bằng cách sử dụng cú pháp catch nhiều lần sau một khối try. Tuy nhiên, nếu logic xử lý cho các exception này giống nhau, bạn có thể muốn tìm cách để không phải viết lại cùng một đoạn code. Một cách để làm điều này là sử dụng một khối catch duy nhất và kiểm tra kiểu của exception bằng cách sử dụng từ khóa when trong C# 6 trở lên, hoặc sử dụng một phương thức xử lý chung cho tất cả các exception mà bạn muốn bắt.

Sử dụng từ khóa when

Từ C# 6 trở lên, bạn có thể sử dụng từ khóa when để lọc các exception dựa trên điều kiện cụ thể, cho phép bạn xử lý nhiều loại exception khác nhau trong cùng một khối catch mà không cần phải duplicate code.

try
{
    // Code có thể phát sinh exception
}
catch (Exception ex) when (ex is IOException || ex is UnauthorizedAccessException)
{
 ...
Bạn cần đăng nhập để xem