1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình trên Windows: Chương 6 - Trần Minh Thái

27 13 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 27
Dung lượng 144,51 KB

Nội dung

Bài giảng Lập trình trên Windows: Chương 6 cung cấp cho người học các kiến thức: Khái niệm Codepath, Lỗi (Error), Exception, giải pháp khắc phục lỗi, cơ chế hoạt động của Exception, các lớp Exception thông dụng, các cách sử dụng Exception,...Đây là tài liệu tham khảo hữu ích cho các bạn chuyên ngành.

Lập trình Windows Chương Exception Nội dung • Khái niệm Codepath, Lỗi (Error), Exception • Giải pháp khắc phục lỗi • Cơ chế hoạt động Exception • Các lớp Exception thơng dụng • Các cách sử dụng Exception Exception Khái niệm Codepath, Lỗi (Error), Exception • Code path • Code path dãy lời gọi phương thức lưu stack CLR Main() One() Two() Three() Divide() Exception Khái niệm Codepath, Lỗi (Error), Exception • Lỗi (error) phát sinh nguyên từ • Người viết chương trình • Cú pháp • Kỹ thuật lập trình, thuật tốn • Mơi trường xung quanh • User: Nhập liệu vượt miền giá trị, định dạng không hợp lệ, đọc file không tồn • Phần cứng: Đĩa bị đầy, đĩa hư, mạng không kết nối, … Error = Compile error + Runtime Error Exception Khái niệm Codepath, Lỗi (Error), Exception • Exception tình khơng mong đợi (lỗi) sinh chương trình thực thi (runtime), gây cho đoạn mã khơng thể tiếp tục để hồn thành nhiệm vụ • Ví dụ: Ghi liệu vào file • Phần lớn thời gian khơng có xảy ra, nhưng… • • • Có thể đĩa bị đầy Có thể có lỗi phần cứng Có thể File bị thay đổi thành read-only • “Code yếu” bỏ qua khả xảy • “Code mạnh” phải lường trước vấn đề Exception Khái niệm Codepath, Lỗi (Error), Exception Error = Compile error + Runtime Error Exception = Runtime Error  Exception sinh từ nguồn • • • CLR – Common Language Runtime Các thư viện dùng Ứng dụng chạy Exception Các giải pháp khắc phục lỗi • Giải pháp khắc phục lỗi C# • Công cụ cho người viết chương trình • Debug • Kiểm tra tính hợp lệ liệu trước dùng • Exception • Cơng cụ cho máy • Trình biên dịch • CLR • Garbage collection – GC • Exception – Công cụ khắc phục Exception cuối CLR Exception Các giải pháp khắc phục lỗi • Giải pháp truyền thống dùng "completion codes”: cho phép nơi gọi phương thức kiểm tra xem lời gọi phương thức: thành cơng hồn tồn hay thành cơng phần hay thất bại GET A FILENAME OPEN THE FILE IF THERE IS NO ERROR OPENING THE FILE READ SOME DATA IF THERE IS NO ERROR READING THE DATA PROCESS THE DATA WRITE THE DATA IF THERE IS NO ERROR WRITING THE DATA CLOSE THE FILE IF THERE IS NO ERROR CLOSING FILE RETURN Exception Các giải pháp khắc phục lỗi • Nhận xét giải pháp completion codes • Chương trình dường tập trung đối phó với lỗi • Rất khó xác định “đoạn mã chính”, khó xác định nhiệm vụ phương thức • Khó dùng phương thức Exception Các giải pháp khắc phục lỗi • Dùng giải pháp exception đoạn mã trông sau TRY TO DO THESE THINGS: GET A FILENAME OPEN THE FILE READ SOME DATA PROCESS THE DATA WRITE THE DATA CLOSE THE FILE RETURN IF ERROR OPENING THE FILE THEN IF ERROR READING THE DATA THEN IF ERROR WRITING THE DATA THEN IF ERROR CLOSING THE FILE THEN 10 Exception Cơ chế hoạt động • Cơ chế hoạt động: Trong C#, Exception xuất • Một đối tượng exception tạo để lưu thơng tin exception • Đối tượng exception ném (throw) trả cho phương thức cha (theo code path) cho • đến tìm thấy phương thức chịu bắt Nếu khơng có phương thức bắt đối tượng exception CLR in thơng tin lỗi kết thúc chương trình 13 Exception Cơ chế hoạt động Các Method gọi CLR Main() One() Two() Three() Divide() Đối tượng Exception truyền ngược lại 14 Exception Các lớp Exception thơng dụng • Exception • SystemException • ArgumentException • ArgumentNullException • ArgumentOutOfRangeException • ArithmeticException   • DivideByZeroException • OverflowException • NotFiniteNumberException • IOException • FileNotFoundException • DirectoryNotFoundException   • FileLoadException • EndOfStreamException 15 Exception Các lớp Exception thơng dụng • Exception • SystemException • EndOfStreamException • NotImplementedException • InvalidCastException • FormatException • IndexOutOfRangeException • NullReferenceException • RankException • StackOverflowException • ApplicationException • Các kiểu exception tự định nghĩa 16 Exception Các lớp Exception thơng dụng • Một số thuộc tính lớp Exception • Message • Source • StackTrace • TargetSite 17 Exception - Các cách sử dụng Exception try { A; B; C; } catch (xxxException ex) { … } catch (xxxException ex) { … } … finally { … } 18 Exception Các cách sử dụng Exception • Chú ý • Nếu có nhiều catch phù hợp với lỗi catch gần try sử dụng • Khơng nên đặt catch tổng quát lên catch khác 19 Exception Các cách sử dụng Exception • Bắt exception try try { { A; A; B; B; C; C; } } catch (Exception ex) catch { { … … } } finally finally { { … … } } 20 Exception Các cách sử dụng Exception double input try { input = Convert.ToDouble(Console.ReadLine()); } catch { Console.WriteLine(“Ban danh so không hop le”); input = double.NaN; } 21 Exception Các cách sử dụng Exception • Kiểm tra tràn số học: Câu lệnh checked kiểm tra tất phép toán số học số nguyên khối xem có bị tràn số khơng – OverflowException • Chúng ta dùng từ khóa checked unchecked để kiểm tra tràn số học biểu thức 22 Exception Các cách sử dụng Exception int number = int.MaxValue; checked {      int willThrow = number++;      Console.WriteLine(“Cau lenh không chay"); } int number = int.MaxValue; unchecked {      int willThrow = number++;      Console.WriteLine(“Cau lenh chay"); } int wontThrow = unchecked(int.MaxValue + 1); int willThrow = checked(int.MaxValue + 1); 23 Exception Ném ngoại lệ • Ném ngoại lệ dùng phương thức chạy gặp lỗi giải nên cần thơng báo lỗi cho phương thức “cha” (phương thức gọi nó) • Cú pháp try {} catch (…) { throw; } objException = new xxxException(…); throw objException; 24 Exception Ném ngoại lệ • Cố gắng dùng lớp exception có sẵn • Ví dụ: Phương thức làm việc tham số null … if (strInput == null) throw new ArgumentNullException(); … 25 Exception Tự tạo ngoại lệ • Tự nghiên cứu • Cách tạo ngoại lệ dành riêng cho ứng dụng • Từ khóa: user defined exceptions • Các trường hợp cần ném ngoại lệ • Từ khóa: Best Practices for Handling Exceptions 26 Q&A 27 27 ... Codepath, Lỗi (Error), Exception • Lỗi (error) phát sinh ngun từ • Người viết chương trình • Cú pháp • Kỹ thuật lập trình, thuật tốn • Môi trường xung quanh • User: Nhập liệu vượt miền giá trị,... Giải pháp khắc phục lỗi C# • Cơng cụ cho người viết chương trình • Debug • Kiểm tra tính hợp lệ liệu trước dùng • Exception • Cơng cụ cho máy • Trình biên dịch • CLR • Garbage collection – GC •... Exception Khái niệm Codepath, Lỗi (Error), Exception • Exception tình khơng mong đợi (lỗi) sinh chương trình thực thi (runtime), gây cho đoạn mã tiếp tục để hồn thành nhiệm vụ • Ví dụ: Ghi liệu vào

Ngày đăng: 08/05/2021, 11:52