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

Xử lý ngoại lệ - ThS Nguyễn Hà Giang doc

20 285 1
Tài liệu đã được kiểm tra trùng lặp

Đ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 20
Dung lượng 296,8 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tình huốngu Những lỗi phát sinh khi rutime có thể làm hư hại chương trình u Có thể không phải lỗi lập trình file v Đĩa bị đầy v Lỗi phần cứng v File bị thay đổi thành chỉ đọc v Không thể

Trang 1

Xử lý ngoại lệ

HD: ThS Nguyễn Hà Giang Khoa CNTT - Hutech

Trang 2

Nội dung

u Cách xử lý ngoại lệ làm việc trong C#

u Câu lệnh try-catch-finally

Trang 3

Tình huống

u Những lỗi phát sinh khi rutime có thể

làm hư hại chương trình

u Có thể không phải lỗi lập trình

file

v Đĩa bị đầy

v Lỗi phần cứng

v File bị thay đổi thành chỉ đọc

v Không thể truy cập, truy vấn CSDL

v

Trang 4

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

u Hầu hết các bước có khả năng thất bại

u Khó xác định chính xác lỗi từ những thông

tin trả về của hàm thư viện

u Đoạn code phải thực hiện rồi mới biết lỗ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

Trang 5

Cách xử lý Exception

u Đoạn code xử lý ngắn gọn, dễ đọc

u Logic chương trình hợp lý hơn, những đoạn nghi

ngờ có lỗi nằm trong vùng Try

u Cho phép xử lý tình huống lỗi rõ ràng và đơn giản!

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

Trang 6

Các đối tượng Exception

u Trong C#, khi runtime error xuất hiện

v CLR sẽ xác định lỗi và phát sinh ta đối

tượng Exception

v Đối tượng Exception này được ném trở lại

stack chờ cho một phương thức bắt lỗi đó.

trình “catch” thì CRL sẽ in ra thông điệp lỗi

Trang 7

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

CLR Runtime

The Main( ) method

First Method

Exception Thrown Here

Method Calls Travel Down

Exceptions

Passed Up

Trang 8

Sử dụng try-catch

u Dùng try-catch để xử lý ngoại lệ

v Đặt code có khả năng dẫn đến ngoại lệ

vào khối “try”

v Cung cấp các khối “catch” theo sau “try”

v Có thể cung cấp tất cả catch cho các lỗi

nếu muốn xử lý, bằng cách sử dụng các lớp exception thích hợp

v Nếu không cung cấp “catch” cho một

ngoại lệ, thì exception này được lan truyền lên trên.

Trang 9

Cú pháp try-catch

try

{

RiskyBussiness();

}

catch (SomeException e )

{

// Handle code }

Code có khả năng dẫn đến lỗi

Tham số exception

được catch

Đoạn xử lý với tình

huống có lỗi

Trang 10

Khối try

v Từ khóa try

v Theo sau khối “{…}”

v Khối “{…}” bắt buộc phải có, khác với

“{…}” trong if hay for

v Đặt bất cứ câu lệnh nào có khả năng phát

sinh ra ngoại lệ

Trang 11

Khối catch

v Không có lệnh nào chen giữa hai khối

catch của một khối try

catch (Exception-class [var1]) {

// xử lý ngoại lệ 1 }

catch (Exception-class [var2]) {

// xử lý ngoại lệ 2 }

Trang 12

Ví dụ try-catch

Chương trình bị terminate

Chương trình kết thúc

bình thường

Trang 13

Sử dụng Finally

u Khi một exception được ném ra

v Luồng thực thi sẽ nhảy vào khối catch xử lý nó.

v Một số đoạn code giải phóng tài nguyên có thể bị

bỏ qua

v Khối try-catch có phần option là finally

v Luôn luôn được gọi

v Sử dụng để dọn dẹp các tài nguyên đang nắm

giữ

Open File

Read Data // ngoại lệ được phát sinh

Close File // đoạn code này bị bỏ qua, dù file chưa đóng

Trang 14

VD có try-catch-finally

Luôn thực thi dù có hay không có ngoại lệ!

Trang 15

Lệnh throw

v Cú pháp: throw exception-object

Phát sinh ra ngoại lệ

Trang 16

Lớp Exception

u Có 2 loại ngoại lệ

v Ngoại lệ phát sinh bởi chương trình

v Ngoại lệ được tạo bởi CLR

tất cả lớp trong C#

u 2 lớp kế thừa từ lớp này:

v ApplicationException: thường làm lớp cơ

bản cho lớp ngoại lệ phát sinh từ ứng dụng

v SystemException: do CLR phát sinh

Trang 17

Lớp Exception (2)

Một số lớp Exception thường dùng

v System.NullReferenceException

v Syste.InvalidCastException

v Syste.ArrayTypeMismatchException

v System.ArithmeticException

v System.OverFlowException

Trang 18

Tự tạo lớp exception

Trang 19

VD truy xuất file

Trang 20

Tóm tắt

chẽ hơn Tránh terminate chương trình đột ngột vì những lỗi runtime

hàm các vấn đề phát sinh lúc runtime

xử lý ngoại lệ trong NET

phát sinh ngoại lệ trong chương trình

Ngày đăng: 28/03/2014, 16:20

🧩 Sản phẩm bạn có thể quan tâm

w