Đang chuẩn bị liên kết để tải về tài liệu:
Những chủ đề tiến bộ trong C# Lỗi và xử lí biệt lệ - Phần 2

Đang chuẩn bị nút TẢI XUỐNG, xin hãy chờ

Giả sử rằng người sử dụng gõ 1 số mà không nằm giữa 0 và 5 . điều này được đón bởi câu lệnh if và 1 đối tượng IndexOutOfRangeExceptionsẽ được khởi tạo và ném.vào lúc này máy tính sẽ ngay lập tức thoát khỏi khối try và tìm khối catch mà xử lí IndexOutOfRangeException. khối catch đầu tiên mà nó đến là khối này : catch (IndexOutOfRangeException e) { Console.WriteLine( "Exception: Number should be between 0 and 5." + e.Message); } . | Những chủ đề tiến bộ trong C Lỗi và xử lí biệt lệ - Phần 2 Giả sử rằng người sử dụng gõ 1 số mà không nằm giữa 0 và 5 . điều này được đón bởi câu lệnh if và 1 đối tượng IndexOutQỈRangeExceptionsẽ được khởi tạo và ném.vào lúc này máy tính sẽ ngay lập tức thoát khỏi khối try và tìm khối catch mà xử lí IndexOutOfRangeException. khối catch đầu tiên mà nó đến là khối này catch IndexOutOfRangeException e Console .WriteLine Exception Number should be between 0 and 5. e.Message Bởi vì khối catch này lấy 1 thông số của một lớp tương đương điều này sẽ được truyền qua 1 thể hiện của biệt lệ và thực thi.trong trường hợp này chúng ta trình bày 1 thông báo lỗi và thuộc tính exception.message đáp lại chuỗi mà chúng ta đã truyền đến hàm dựng của IndexOutOfRange .sau khi thực thi khối catch này điều khiển chuyển đến khối finally như là không có biệt lệ nào xuất hiện. Chú ý rằng chúng ta cũng cung cấp một khối catch khác catch Exception e Console.WriteLine An exception was thrown. Message was e.Message Khối catch này cũng có khả năng xử lý IndexOutOfRangeException nếu không có sự kiện rằng biệt lệ đã được đón bắt bởi khối catch trước- một sự tham chiếu đến 1 lớp cơ sở có thể cũng chuyển đến bất kỳ 1 thể hiện của mộ lớp dẫn xuất từ nó.và tất cả biệt lệ mà dẫn xuất từ system.exception . vậy tại sao khối catch này không được thực thi câu trả lời là máy tính chỉ thực thi khối catch thích hợp đầu tiên mà nó tìm thấy. vậy tại sao khối catch thứ hai này lại nằm ở đây thật ra thì không chỉ đoạn mã của ta mới được bao phủ bởi khối try mà bên trong khối chúng ta thực sự gọi những phương thức riêng biệt nhau trong namspace system Console.ReadLine Console.Write and Convert.ToInt32 và bất kỳ phương thức nào trong đây cũng có thể ném ra một biệt lệ. Nếu chúng ta gõ một thứ gì không phải là số - say hoặc hello sau đó phương thức convert.toin32 sẽ ném ra một biệt lệ của lớp System.FormatException để chỉ định chuỗi được truyền vào toin32 không nằm trong định dạng mà có thể chuyển thành kiểu int. khi

TÀI LIỆU LIÊN QUAN