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

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

Đ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

Xử ngoại lệ HD: ThS Nguyễn Giang Khoa CNTT -Hutech Nội dung u Tình huống phát sinh ngoại lệ u Cách xử ngoại lệ làm việc trong C# u Câu lệnh try-catch-finally Tình huống u Nhữnglỗiphátsinhkhirutimecóthể làmhưhạichươngtrình u Cóthể khôngphảilỗilậptrình u VD: mộtsốtìnhhuốngviếtdữliệuvào file v Đĩabịđầy v Lỗiphầncứng v File bị thay đổithànhchỉđọc v Khôngthể truycập, truyvấnCSDL v … Cách xử trước đây u Hầuhếtcácbướccókhả năngthấtbại u Khóxác địnhchínhxáclỗitừnhữngthông tin trả về củahàmthư viện u Đoạncode phảithựchiệnrồimớibiếtlỗ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 Cách xử Exception u Đoạncode xử lýngắngọn, dễđọc u Logic chươngtrìnhhợplýhơn, những đoạnnghi ngờ cólỗinằmtrongvùngTry u Cho phépxửlýtìnhhuốnglỗirõràngvà đơngiản! TRYTO 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 Các đối tượng Exception u TrongC#, khiruntime error xuấthiện v CLR sẽ xác địnhlỗivàphátsinhta đối tượngException v ĐốitượngException này đượcnémtrở lại stack chờ chomộtphươngthứcbắtlỗi đó. v NếuException nàykhông đượcchương trình“catch” thìCRL sẽ in rathông điệp lỗi Mô hình gọi –xử Exception CLR Runtime The Main( ) method First Method Exception Thrown Here Method Calls Travel Down Exceptions Passed Up Sử dụng try-catch u Dùngtry-catch để xử lýngoạilệ v Đặtcode cókhả năngdẫnđếnngoạilệ vàokhối“try” v Cungcấpcáckhối“catch” theosau“try” v Cóthể cungcấptấtcảcatch chocáclỗi nếumuốnxửlý, bằngcáchsửdụng cáclớpexception thíchhợp v Nếukhôngcungcấp“catch” chomột ngoạilệ, thìexception này đượclan truyềnlêntrên. Cúpháptry-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ử với tình huống có lỗi Khối try u Baogồmcácphần v Từ khóatry v Theo saukhối“{…}” v Khối“{…}” bắtbuộcphảicó, khácvới “{…}” trongif hay for u Bêntrongkhốitry v Đặtbấtcứcâulệnhnàocókhả năngphát sinhrangoạilệ [...]... như sau catch (Exception-class [var1]) { // xử ngoại lệ 1 } catch (Exception-class [var2]) { // xử ngoại lệ 2 } Ví d try-catch Chương trình bị terminate Chương trình kết thúc bình thường S u d ng Finally Khi m t exception đư c ném ra v Lu ng th c thi s nh y vào kh i catch x v M t s đo n code gi i phóng tài nguyên có th b b qua Open File Read Data Close File v nó // ngoại lệ được phát sinh //... lệ được phát sinh // đoạn code này bị bỏ qua, dù file chưa đóng 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 VD có try-catch-finally Luôn thực thi dù có hay không có ngoại lệ! L nh throw u Cho phép ném ra m t ngo i l v Cú pháp: throw exception-object Phát sinh ra ngoại lệ L p Exception u Có 2 lo i ngo i l v Ngo i l phát sinh b i chương trình... VD truy xu t file Tóm t t u Exception làm cho chương trình ch t ch hơn Tránh terminate chương trình đ t ng t vì nh ng l i runtime u T p các l p Exception đa d ng, bao hàm các v n đ phát sinh lúc runtime u L p Exception là l p cơ s x ngo i l trong NET u D dàng đ nh nghĩa l p ngo i l , và phát sinh ngo i l trong chương trình cho các l p . Xử lý ngoại lệ HD: ThS Nguyễn Hà Giang Khoa CNTT -Hutech Nội dung u Tình huống phát sinh ngoại lệ u Cách xử lý ngoại lệ làm việc trong C# u Câu lệnh try-catch-finally Tình huống u Nhữnglỗiphátsinhkhirutimecóthể làmhưhạichươngtrình u. try-catch-finally Luôn thực thi dù có hay không có ngoại lệ! Lệnh throw u Cho phépnémramộtngoạilệ v Cúpháp: throw exception-object Phát sinh ra ngoại lệ Lớp Exception u Có2loạingoạilệ v Ngoạilệphátsinhbởichươngtrình v. Cúphápkhốicatch như sau catch (Exception-class [var1]) { // xử lý ngoại lệ 1 } catch (Exception-class [var2]) { // xử lý ngoại lệ 2 } Ví dụ try-catch Chương trình bị terminate Chương trình kết thúc

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

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan