Bài giảng Lập trình trên Windows: Chương 6 - Trần Minh Thái
lượt xem 7
download
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.
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Bài giảng Lập trình trên Windows: Chương 6 - Trần Minh Thái
- Lập trình Windows Chương 6. Exception 1
- 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 của Exception • Các lớp Exception thông dụng • Các cách sử dụng Exception 2
- Exception Khái niệm Codepath, Lỗi (Error), Exception • Code path • Code path là một dãy tuần tự lời gọi các phương thức và được lưu trên stack CLR Main() One() Two() Three() Divide() 3
- Exception Khái niệm Codepath, Lỗi (Error), Exception • Lỗi (error) phát sinh nguyên do từ • Người viết chương trình • Cú pháp • Kỹ thuật lập trình, thuật toán • Môi trường xung quanh • User: Nhập dữ liệu vượt quá miền giá trị, định dạng không hợp lệ, đọc file không tồn tại • Phần cứng: Đĩa bị đầy, đĩa hư, mạng không kết nối, … Error = Compile error + Runtime Error 4
- Exception Khái niệm Codepath, Lỗi (Error), Exception • Exception là một tình huống không mong đợi (lỗi) sinh ra khi chương trình đang thực thi (runtime), gây cho đoạn mã không thể tiếp tục để hoàn thành nhiệm vụ • Ví dụ: Ghi dữ liệu vào file • Phần lớn thời gian không có gì 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 những khả năng của có thể xảy ra • “Code mạnh” phải lường trước những vấn đề như thế 5
- Exception Khái niệm Codepath, Lỗi (Error), Exception Error = Compile error + Runtime Error Exception = Runtime Error § Exception có thể sinh ra từ các nguồn • CLR – Common Language Runtime • Các thư viện đang dùng • Ứng dụng đang chạy 6
- Exception Các giải pháp khắc phục lỗi • Giải pháp khắc phục lỗi trong C# • Công cụ cho người viết chương trình • Debug • Kiểm tra tính hợp lệ của dữ liệu trước khi 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 cùng của CLR 7
- Exception Các giải pháp khắc phục lỗi • Giải pháp truyền thống là 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 hoàn toàn hay thành công 1 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 8
- Exception Các giải pháp khắc phục lỗi • Nhận xét về giải pháp completion codes • Chương trình dường như chỉ tập trung đối phó với lỗi • Rất khó xác định các “đoạn mã chính”, khó xác định nhiệm vụ chính của phương thức là gì • Khó dùng phương thức 9
- 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 như 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ác giải pháp khắc phục lỗi • Nhận xét về giải pháp exception • Tách phần kiểm tra lỗi và “đoạn mã chính” • Dễ dàng xác định nhiệm vụ chính yếu của phương thức • Ngắn hơn và dễ dàng đọc hơn 11
- Exception Các giải pháp khắc phục lỗi • Giải pháp exception (exception handling) • try • catch • throw • finally • System exception: Cung cấp sẵn • Application exception: Tự tạo các lớp exception để sinh ra các exception cho riêng ứng dụng 12
- Exception Cơ chế hoạt động • Cơ chế hoạt động: Trong C#, khi một Exception xuất hiện • Một đối tượng exception được tạo ra để lưu thông tin exception • Đối tượng exception này được ném (throw) trả về cho phương thức cha (theo code path) cho đến khi tìm thấy phương thức nào chịu bắt nó • Nếu không có phương thức nào bắt đối tượng exception thì CLR in thông tin lỗi và kết thúc chương trình 13
- Exception Cơ chế hoạt động Các Method CLR được gọi tuần tự Main() One() Two() Three() Divide() Đối tượng Exception được 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 trong 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 thì catch nào gần try nhất sẽ được sử dụng • Không nên đặt catch tổng quát hơn lên trên những catch khác 19
- Exception Các cách sử dụng Exception • Bắt mọi exception try try { { A; A; B; B; C; C; } } catch (Exception ex) catch { { … … } } finally finally { { … … } } 20
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Lập trình trên Windows: Giới thiệu môn học - Trần Minh Thái
16 p | 141 | 16
-
Bài giảng Lập trình trên Windows: Chương 1 - Trần Minh Thái
68 p | 116 | 16
-
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 1)
141 p | 100 | 15
-
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 2)
96 p | 80 | 14
-
Bài giảng Lập trình trên Windows: Chương 3 - Trần Minh Thái
220 p | 89 | 14
-
Bài giảng Lập trình trên Windows: Chương 4 - Trần Minh Thái
35 p | 100 | 12
-
Bài giảng Lập trình trên Windows: Chương 2 - Trần Minh Thái (Phần 3)
29 p | 73 | 10
-
Bài giảng Lập trình trên Windows: Chương 5 - Trần Minh Thái
38 p | 102 | 10
-
Bài giảng Lập trình trên Windows: Chương 5.2 - Trần Minh Thái
86 p | 90 | 9
-
Bài giảng Lập trình trên Windows: Chương 5.1 - Trần Minh Thái
20 p | 78 | 9
-
Bài giảng Lập trình trên Windows: Chương 5.5 - Trần Minh Thái
47 p | 62 | 8
-
Bài giảng Lập trình trên Windows: Chương 5.6 - Trần Minh Thái
44 p | 73 | 8
-
Bài giảng Lập trình trên Windows: Chương 5.3 - Trần Minh Thái
25 p | 69 | 7
-
Bài giảng Lập trình trên Windows: Chương 5.4 - Trần Minh Thái
22 p | 64 | 6
-
Bài giảng Lập trình trên môi trường Windows: Phần 1 - Windows control
31 p | 94 | 5
-
Bài giảng Lập trình trên Windows với Microsoft® .NET: Bài 6 - Hồ Hoàn Kiếm
15 p | 70 | 5
-
Bài giảng Lập trình trên Windows với Microsoft® .NET: Bài 1 - Hồ Hoàn Kiếm
19 p | 65 | 4
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn