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

Báo cáo: Xử lý ngoại lệ

20 0 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

Cấu trúc

  • Xử lý ngoại lệ

  • Nội dung

  • Tình huống

  • Cách xử lý trước đây

  • Cách xử lý Exception

  • Các đối tượng Exception

  • Mô hình gọi – xử lý Exception

  • Sử dụng try-catch

  • Cú pháp Try-Catch

  • Khối try

  • Khối catch

  • Ví dụ try-catch

  • Sử dụng Finally

  • VD có try-catch-finally

  • Lệnh throw

  • Lớp Exception

  • Lớp Exception (2)

  • Tự tạo lớp exception

  • VD truy xuất file

  • Tóm tắt

Nội dung

Những lỗi phát sinh khi rutime có thể làm hư hại chương trình...

Xử lý ngoại lệ Nguyễn Văn Phong Nội dung  Tình phát sinh ngoại lệ  Cách xử lý ngoại lệ làm việc C#  Câu lệnh try-catch-finally Tình  Những lỗi phát sinh rutime làm hư hại chương trình  Khơng phải lỗi lập trình  VD: số tình viết liệu vào file  Đĩa bị đầy  Lỗi phần cứng File bị thay đổi thành đọc  …  Cách xử lý trước 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    Hầu hết bước có khả thất bại Khó xác định xác lỗi từ thơng tin trả hàm thư viện Đoạn code phải thực biết lỗi Cách xử lý Exception 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    Đoạn code xử lý ngắn gọn, dễ đọc Logic chương trình hợp lý hơn, đoạn nghi ngờ có lỗi nằm vùng Try Cho phép xử lý tình lỗi rõ ràng đơn giản Các đối tượng Exception  Trong C#, runtime error xuất  CLR xác định lỗi phát sinh ta đối tượng Exception  Đối tượng Exception ném trở lại stack chờ cho phương thức bắt lỗi  Nếu Exception khơng chương trình “catch” CRL in thơng điệp lỗi Mơ hình gọi – xử lý Exception CLR Runtime The Main( ) method Exceptions Passed Up First Method Exception Thrown Here Method Calls Travel Down Sử dụng try-catch  Dùng Try-catch để xử lý ngoại lệ  Đặt code có khả dẫn đến ngoại lệ vào khối “try”  Cung cấp khối “catch” theo sau “try”   Có thể cung cấp tất catch cho lỗi muốn xử lý, cách sử dụng lớp exception thích hợp Nếu không cung cấp catch cho ngoại lệ, exception đượn lan truyền lên Cú pháp Try-Catch Code có khả dẫn đến lỗi try { RiskyBussiness(); } catch (SomeException e ) { // Handle code } Tham số exception catch Đoạn xử lý với tình có lỗi Khối try  Bao gồm phần  Từ khóa try    Theo sau khối “{…}” Khối “{…}” bắt buộc phải có, khác với “{…}” if hay for Bên khối try  Đặt câu lệnh có khả phát sinh ngoại lệ Khối catch  Đặt hay nhiều sau khối try  Khơng có lệnh chen hai khối catch try  Cú pháp khối catch sau catch (Exception-class [var1]) { // xử lý ngoại lệ } catch (Exception-class [var2]) { // xử lý ngoại lệ } Ví dụ try-catch Chương trình bị terminate Chương trình kết thúc bình thường Sử dụng Finally  Khi exception ném   Luồng thực thi nhảy vào khối catch xử lý Một số đoạn code giải phóng tài nguyên bị bỏ qua Open File Read Data Close File  // ngoại lệ phát sinh // đoạn code bị bỏ qua, dù file chưa đóng Khối try-catch có phần option finally  Ln ln gọi  Sử dụng để dọn dẹp tài ngun nắm giữ VD có try-catch-finally Ln thực thi dù có hay khơng có ngoại lệ Lệnh throw  Cho phép ném ngoại lệ  Cú pháp: throw exception_object Phát sinh ngoại lệ Lớp Exception  Có loại ngoại lệ  Ngoại lệ phát sinh chương trình  Ngoại lệ tạo CLR  Lớp System.Exception sở cho tất lớp C#  lớp kế thừa từ lớp này:  ApplicationException: thường làm lớp cho lớp ngoại lệ phát sinh từ ứng dụng  SystemException: CLR phát sinh Lớp Exception (2) Một số lớp Exception thường dùng  System.OutOfMemoryException     System.NullReferenceException Syste.InvalidCastException Syste.ArrayTypeMismatchException System.IndexOutOfRangeException         System.ArithmeticException System.DevideByZeroException  System.OverFlowException   Tự tạo lớp exception VD truy xuất file Tóm tắt  Exception làm cho chương trình chặt chẽ Tránh tetminal chương trình đột ngột lỗi runtime  Tập lớp Exception đa dạng, bao hàm vấn đề phát sinh lúc runtime  Lớp Exception lớp sở cho lớp xử lý ngoại lệ NET  Dễ dàng định nghĩa lớp ngoại lệ, phát sinh ngoại lệ chương trình ... khơng có ngoại lệ Lệnh throw  Cho phép ném ngoại lệ  Cú pháp: throw exception_object Phát sinh ngoại lệ Lớp Exception  Có loại ngoại lệ  Ngoại lệ phát sinh chương trình  Ngoại lệ tạo CLR... vấn đề phát sinh lúc runtime  Lớp Exception lớp sở cho lớp xử lý ngoại lệ NET  Dễ dàng định nghĩa lớp ngoại lệ, phát sinh ngoại lệ chương trình ...Nội dung  Tình phát sinh ngoại lệ  Cách xử lý ngoại lệ làm việc C#  Câu lệnh try-catch-finally Tình  Những lỗi phát sinh rutime làm hư hại chương

Ngày đăng: 08/05/2021, 17:13

w