intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Bài giảng Lập trình hướng đối tượng: Chương 9 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM

Chia sẻ: _ _ | Ngày: | Loại File: PDF | Số trang:32

8
lượt xem
3
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Bài giảng Lập trình hướng đối tượng: Chương 9 Xử lý ngoại lệ, cung cấp cho người đọc những kiến thức như: Khái niệm ngoại lệ (exception); Cơ chế hoạt động của Exception handling; Bắt exception (catching exception); Ném ngoại lệ (Throwing exception);...Mời các bạn cùng tham khảo!

Chủ đề:
Lưu

Nội dung Text: Bài giảng Lập trình hướng đối tượng: Chương 9 - Trường Đại học Ngoại ngữ - Tin học, TP.HCM

  1. CHƯƠNG 9: Click to edit Master subtitle style XỬ LÝ NGOẠI LỆ Khoa Công nghệ thông tin Trường Đại học Ngoại ngữ - Tin học, TP.HCM 1
  2. NỘI DUNG Khái niệm ngoại lệ (exception) Cơ chế hoạt động của Exception handling Bắt exception (catching exception) Cấu trúc khối lệnh try – catch Cấu trúc khối lệnh có nhiều mệnh đề catch Ném ngoại lệ (Throwing exception) Từ khóa finally Tóm tắt 2
  3. KHÁI NIỆM NGOẠI LỆ (EXCEPTION)
  4. Khái niệm ngoại lệ (exception) Ngoại lệ (exception) là đối tượng chứa các thông tin về lỗi (error condition) hoặc các sự cố bất thường (unexpected behavior) khi thực thi chương trình. Ngoại lệ xuất phát từ: Lỗi trong code lập trình Lỗi gây ra bởi người dùng (người dùng nhập một con số thay vì phải nhập các ký tự chữ cái,…) Lỗi từ hệ điều hành (hết tài nguyên bộ nhớ, …) 4
  5. Khái niệm ngoại lệ (exception) Ví dụ: public int GetNumber(int min, int max) Người dùng { nhập vào một int number=0; số nguyên ? while (number < min || number>max) { Console.Write(“Enter a number between {0} and {1}: ”, min, max); string input = Console.ReadLine(); number = Convert.ToInt32(input); } return number; } 5
  6. Khái niệm ngoại lệ (exception) Ví dụ: public int GetNumber(int min, int max) Người dùng { nhập vào các int number=0; ký tự: asdf ? while (number < min || number>max) { Console.Write(“Enter a number between {0} and {1}: ”, min, max); string input = Console.ReadLine(); number = Convert.ToInt32(input); } return number; } Lỗi (exception) Xử lý lỗi như thế nào? 6
  7. Khái niệm ngoại lệ (exception) Trình quản lý ngoại lệ (Exception handling): là cơ chế của C# để bắt những lỗi khi chương trình đang thực thi 7
  8. CƠ CHẾ HOẠT ĐỘNG CỦA EXCEPTION HANDLING
  9. Cơ chế hoạt động của Exception handling Tạo đối Lỗi tượng Ném Bắt (throw) xuất exception exception (catch) và chứa thông xử lý lỗi hiện tin lỗi Ném đối tượng Phương thức biết exception này đến phương thức gọi nó, cách xử lý thì bắt phần code sau đó exception này không được thực thi. (catch) 9
  10. BẮT EXCEPTION (CATCHING EXCEPTION)
  11. Bắt exception (catching exception) Trước khi bắt exception, chúng ta phải biết Xác định lỗi sẽ xuất hiện tại lệnh nào • Đưa đoạn code sẽ gây ra lỗi (exception) vào trong khối lệnh try Chúng ta sẽ làm gì với lỗi đó • Lệnh bắt (catch) và xử lý lỗi trong khối lệnh catch 11
  12. Bắt exception (catching exception) Ví dụ: public int GetNumber(int min, int max) Đoạn code có { thể gây ra lỗi int number=0; (exception) while (number < min || number>max) { Console.Write(“Enter a number between {0} and {1}: ”, min,max); string input = Console.ReadLine(); number = Convert.ToInt32(input); } return number; } 12
  13. Bắt exception (catching exception) public int GetNumber(int min, int max) { Đưa đoạn int number=0; code có thể while (number < min || number>max) gây ra lỗi vào { khối lệnh try try { Console.Write(“Enter a number between {0} and {1}: ”, min, max); string input = Console.ReadLine(); Xử lý lỗi number = Convert.ToInt32(input); không khối } catch (Exception e) lệnh catch { Console.WriteLine(“This is not a valid number. Try again.”); } } } 13
  14. Bắt exception (catching exception) Cấu trúc khối lệnh try – catch Cấu trúc khối lệnh có nhiều mệnh đề catch 14
  15. Bắt exception (catching exception) Cấu trúc khối lệnh try – catch Cấu trúc khối lệnh có nhiều mệnh đề catch 15
  16. Cấu trúc khối lệnh try - catch Giải thích Khối try chứa đoạn mã có thể sinh lỗi Khối catch: Xác định exception và làm sao xử lý lỗi Thông tin lỗi: Nằm trong đối tượng tên e (nếu chúng ta không dùng e thì có thể bỏ) try { } catch (Exception e) { } 16
  17. Cấu trúc khối lệnh try - catch Thuộc tính của lớp Exception Message : mô tả lỗi Source : get/set nguồn gây ra lỗi (từ thư viện lỗi) StackTrace : Tra cứu nguồn gốc gây ra lỗi TargetSite: phương thức gây ra lỗi 17
  18. Bắt exception (catching exception) Cấu trúc khối lệnh try – catch Cấu trúc khối lệnh có nhiều mệnh đề catch 18
  19. Cấu trúc khối lệnh có nhiều mệnh đề catch Bắt nhiều exception khác nhau try { string input = “a”; int number = Convert.ToInt32(input) } catch (FormatException e) { Console.WriteLine(“You must enter a number.”); } catch (OverflowException e) { Console.WriteLine(“Enter a smaller number.”); } catch (Exception e) { Console.WriteLine(“An unknown error occurred.”); } 19
  20. Cấu trúc khối lệnh có nhiều mệnh đề catch Ghi chú: Khi một khối lệnh catch được thực thi, nó sẽ bỏ qua các khối lệnh catch còn lại Thứ tự các khối lệnh catch rất quan trọng • Các kiểu ngoại lệ cụ thể (các lớp dẫn xuất) phải xếp trước các kiểu ngoại lệ tổng quát (lớp cơ sở) Câu lệnh sẽ ra sao nếu khối lệnh catch (Exception e) xếp trước catch (FormatException e) và catch (OverflowException e) ? 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2