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
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ố ...
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ìm kiếm theo từ khóa liên quan:
lập trình với java ngôn ngữ java lý thuyết java giáo trình lập trình java core javaGợi ý tài liệu liên quan:
-
Bài toán phân luồng giao thông và ứng dụng
11 trang 180 1 0 -
7 trang 51 0 0
-
Giáo trình Lý thuyết và bài tập Java: Phần 1
420 trang 38 1 0 -
153 trang 33 0 0
-
Chương 1: Giới thiệu tổng quan Java
31 trang 30 0 0 -
A Guide To Advanced Java - Collections
1 trang 29 0 0 -
Bài giảng Lập trình Java căn bản: Chương 2 - ThS. Võ Đức Cẩm Hải
24 trang 29 0 0 -
Lập trình Java cơ bản- Bài 1 (Overview)
34 trang 26 0 0 -
Bài thuyết trình Cơ bản về Java
29 trang 25 0 0 -
Chương 2: Cơ bản về ngôn ngữ Java
59 trang 24 0 0 -
20 trang 24 0 0
-
Distributed Computing in Java - Swing components and Dialog Box
1 trang 24 0 0 -
Giáo trình java cơ bản - Chương 5
45 trang 24 0 0 -
22 trang 23 0 0
-
Java 6 Platform Revealed phần 1
24 trang 23 0 0 -
A Guide To Advanced Java - Java.io package
3 trang 23 0 0 -
CoreJava 9 - LUỒNG I/O (I/O Streams)
21 trang 22 0 0 -
Đề cương chi tiết học phần Lập trình IoT
14 trang 22 0 0 -
A Guide To Advanced Java - Generics
2 trang 22 0 0 -
42 trang 22 0 0