Danh mục

CoreJava 7 - XỬ LÝ NGOẠI LỆ (Exception Handling)

Số trang: 13      Loại file: doc      Dung lượng: 145.00 KB      Lượt xem: 19      Lượt tải: 0    
Jamona

Phí tải xuống: 2,000 VND Tải xuống file đầy đủ (13 trang) 0
Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Exception là một lỗi đặc biệt. Lỗi này xuất hiện vào lúc thực thi chương trình. Các trạng thái không bìnhthường xảy ra trong khi thi hành chương trình tạo ra các exception. Những trạng thái này không đượcbiết trước trong khi ta đang xây dựng chương trình. Nếu bạn không phân phối các trạng thái này thìexception có thể bị kết thúc đột ngột. Ví dụ, việc chia cho 0 sẽ tạo một lỗi trong chương trình....
Nội dung trích xuất từ tài liệu:
CoreJava 7 - XỬ LÝ NGOẠI LỆ (Exception Handling)Chương7 XỬLÝNGOẠILỆ(ExceptionHandling)Saukhikếtthúcchươngnày,bạncóthểnắmđượccácnộidungsau: Địnhnghĩamộtngoạilệ(exception) Hiểuđượcmụcđíchcủaviệcxửlýngoạilệ HiểuđượccáckiểungoạilệkhácnhautrongJava Môtảmôhìnhxửlýngoạilệ Hiểuđượccáckhốilệnhchứanhiềucatch Môtảcáchsửdụngcáckhối‘try’,‘catch’và‘finally’ Giảithíchcáchsửdụngcáctừkhoá‘throw’và‘throws’ Tựtạoracácngoạilệ 7.1GiớithiệuExceptionlàmộtlỗiđặcbiệt.Lỗinàyxuấthiệnvàolúcthựcthichươngtrình.Cáctrạngtháikhôngbìnhthườngxảyratrongkhithihànhchươngtrìnhtạoracácexception.Nhữngtrạngtháinàykhông được biếttrướctrongkhita đangxâydựngchươngtrình.Nếubạnkhôngphânphốicáctrạngtháinàythì exceptioncóthểbịkếtthúcđộtngột.Vídụ,việcchiacho0sẽtạomộtlỗitrongchươngtrình.Ngônngữ Javacungcấpbộmáydùngđểxửlýngoạilệrấttuyệtvời.Việcxửlýnàylàmhạnchếtốiđatrườnghợphệthốngbịphávỡ(crash)hayhệthốngbịngắtđộtngột.TínhnăngnàylàmchoJavalàmộtngônngữlậptrìnhmạnh.7.2MụcđíchcủaviệcxửlýngoạilệMộtchươngtrìnhnêncó cơ chế xử lý ngoạilệ thíchhợp.Nếukhông,chươngtrìnhsẽ bị ngắtkhimột exceptionxảyra.Trongtrườnghợpđó,tấtcảcácnguồntàinguyênmàhệthốngtrướckiaphânphốisẽ đượcdidờitrongcùngtrạngthái.Điềunàygâylãngphítàinguyên.Đểtránhtrườnghợpnày,tấtcảcác nguồntàinguyênmàhệthốngphânphốinênđượcthuhồilại.Tiếntrìnhnàyđòihỏicơchếxửlýngoạilệthíchhợp.Choví dụ,xétthaotácnhậpxuất(I/O)trongmộttậptin.Nếuviệcchuyển đổikiểudữliệukhôngthực hiệnđúng,mộtngoạilệsẽxảyravàchươngtrìnhbịhủymàkhôngđónglạitậptin.Lúcđótậptindễbị hưhạivàcácnguồntàinguyênđượccấpphátchotậptinkhôngđượcthuhồilạichohệthống.7.3XửlýngoạilệChương 7: Xử lý ngoại lệ (Exception Handling) 27Khimộtngoạilệ xảyra, đốitượngtương ứngvớingoạilệ đó đượctạora. Đốitượngnàysau đó được truyềnchophươngthứclà nơimà ngoạilệ xảyra. Đốitượngnàychứathôngtinchitiếtvề ngoạilệ.Thôngtinnàycóthểđượcnhậnvềvàđượcxửlý.Cácmôitrườngruntimenhư‘IllegalAccessException’,‘EmptyStackException’v.v…cóthểchặnđượccácngoạilệ.Đoạnmãtrongchươngtrìnhđôikhicóthểtạoracácngoạilệ.Lớp‘throwable’đượcJavacungcấplàlớptrênnhấtcủalớpException,lớpnàylà lớpchacủacácngoạilệkhácnhau.7.4MôhìnhxửlýngoạilệTrongJava,môhìnhxửlýngoạilệkiểmtraviệcxửlýnhữnghiệuứnglề(lỗi),đượcbiếtđếnlàmôhình‘catchvàthrow’.Trongmôhìnhnày,khimộtlỗixảyra,mộtngoạilệsẽbịchặnvàđượcđưavàotrongmộtkhối.Ngườilậptrìnhviênnênxétcáctrạngtháingoạilệ độclậpnhautừ việc điềukhiểnthôngthườngtrongchươngtrình.Cácngoạilệphảiđượcbắtgiữnếukhôngchươngtrìnhsẽbịngắt.NgônngữJavacungcấp5từkhoásauđểxửlýcácngoạilệ: try catch throw throws finally Dướiđâylàcấutrúccủamôhìnhxửlýngoạilệ:try{ //placecodethatisexpectedtothrowanexception}catch(Exceptione1){ //Ifanexceptionisthrownin‘try’,whichisoftypee1,thenperform //necessaryactionshere,elsegotothenextcatchblock}catch(Exceptione2){ //Ifanexceptionisthrownin,trywhichisoftypee2,thenperform //necessaryactionshere,elsegotothenextcatchblock}28 Core Javacatch(ExceptioneN){ //Ifanexceptionisthrownin,trywhichisoftypeeN,thenperform //necessaryactionshere,elsegotothenextcatchblock}finally{ //thisbookisexecuted,whetherornottheexceptionisthrow.}7.4.1Cácưuđiểmcủamôhình‘catchvàthrow’Môhình‘catchvàthrow’cóhaiưuđiểm: Ngườilậptrìnhviênphảiphânphốitrạngtháilỗichỉ vàonhữngnơicầnthiết.Khôngcầnphải thựchiệntạimọimức. Mộtthôngbáolỗicóthểđượcinrakhitiếnhànhxửlýngoạilệ.7.4.2Cáckhối‘try’và‘catch’Khối‘trycatch’ đượcsử dụng để thihànhmô hình‘catchvà throw’củaviệcxử lý ngoạilệ.Khối‘try’ chứamộtbộ cáclệnhcó thể thihành được.Cácngoạilệ có thể bị chặnkhithihànhnhữngcâulệnhnày.Phươngthứcdùng để chặnngoạilệ có thể đượckhaibáotrongkhối‘try’.Mộthaynhiềukhối‘catch’cóthểtheosaukhối‘try’.Cáckhối‘catch’nàybắtcácngoạilệbịchặntrongkhối‘try’.Hãynhìn khố ...

Tài liệu được xem nhiều:

Gợi ý tài liệu liên quan: