Bài giảng Xử lý ngoại lệ
Số trang: 33
Loại file: ppt
Dung lượng: 279.00 KB
Lượt xem: 15
Lượt tải: 0
Xem trước 4 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Xử lý ngoại lệ bao gồm những nội dung về xử lý lỗi và ngoại lệ; khối try/catch/finally; các lớp ngoại lệ; xây dựng lớp ngoại lệ; lan truyền ngoại lệ; tung lại ngoại lệ. Mời các bạn tham khảo bài giảng để hiểu rõ hơn về những nội dung này.
Nội dung trích xuất từ tài liệu:
Bài giảng Xử lý ngoại lệXửlýngoạilệ • Xửlýlỗivàngoạilệ • Khốitry/catch/finally • Cáclớpngoạilệ • Xâydựnglớpngoạilệ • Lantruyềnngoạilệ • Tunglạingoạilệ • Bàitập 1Xửlýlỗivàngoạilệ• TrongmộtsốngônngữnhưC,việcxửlýlỗithường đượccàiđặtngaytạicácbướcthựchiệncủa chươngtrình.Cáchàmsẽtrảvềmộtcấutrúclỗikhi gặplỗi.• Vídụ:Tìmkiếmphầntửtrongmộtdanhsách • ErrorStructerror=newErrorStruct(); • TableEntryentry=lookup(“Marianna”,employee,error); • if(entry==null) • { • returnerror; • } 2Xửlýlỗivàngoạilệ Mãlệnhvàmãxửlýlỗinằmxenkẽkhiếnlập trìnhviênkhótheodõiđượcthuậttoánchínhcủa chươngtrình. KhimộtlỗixảyratạihàmA,tấtcảcáclờigọi hàmlồngnhauđếnAđềuphảixửlýlỗimàAtrả về. 3Xửlýlỗivàngoạilệ• TrongJava,việcxửlýlỗicóthểđượccàiđặttrong mộtnhánhđộclậpvớinhánhchínhcủachương trình.• Lỗiđượccoinhưnhữngtrườnghợpngoạilệ (exceptionalconditions).Chúngđượcbắt/ném (catchandthrow)khicólỗixảyra. =>Mộttrườnghợplỗisẽchỉđượcxửlýtạinơicần xửlý. =>Mãchínhcủachươngtrìnhsángsủa,đúngvới thiếtkếthuậttoán. 4Vídụ1import java.awt.Point;public class MyArray{ public static void main(String[ ] args) { System.out.println(Goi phuong thuc methodeX()); methodeX(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void methodeX() { Point[ ] pts = new Point[10]; for(int i = 0; i < pts.length; i++) { pts[i].x = i; pts[i].y = i+1; } }} 5Kếtquảthựcthivídụ1GoiphuongthucmethodeX()Exceptioninthreadmainjava.lang.NullPointerExceptionatMyArray.methodeX(MyArray.java:14)atMyArray.main(MyArray.java:7)Giảithích:HệthốngđãtungramộtexceptionthuộclớpNullPointerExceptionkhigặplỗi.Sauđóchươngtrìnhkếtthúc. 6Vídụ2public class MyDivision { public static void main(String[ ] args) { System.out.println(Goi phuong thuc A()); A(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void A() { B(); } public static void B() { C(); } public static void C() { float a = 2/0; }} 7Kếtquảthựcthivídụ2GoiphuongthucA()Exceptioninthreadmainjava.lang.ArithmeticException:/byzeroatMyDivision.C(MyDivision.java:14)atMyDivision.B(MyDivision.java:11)atMyDivision.A(MyDivision.java:8)atMyDivision.main(MyDivision.java:4)Giảithích:PhươngthứcA()gọiB(),B()gọiC(),C()gâyralỗichiacho0vàhệthống“ném”ramộtexceptionthuộclớpArithmeticException.Sauđóchươngtrìnhkếtthúc. 8Ngoạilệ• Khimộtphươngthứcgặplỗinàođó,vídụ nhưchiakhông,vượtkíchthướcmảng,mở filechưatồntại…thìcácngoạilệsẽđược némra.Chươngtrìnhdừnglạingaylậptức, toànbộphầnmãphíasausẽkhôngđược thựcthi.• Javahỗtrợcáchthứcđểxửlýngoạilệ (exceptionhandling)tuỳtheonhucầucủa chươngtrình. 9Xửlýngoạilệ• Khốitry/catch • Đặtđoạnmãcókhảnăngxảyrangoạilệtrong khốitry • Đặtđoạnmãxửlýngoạilệtrongkhốicatch • Khixảyrangoạilệtrongkhốitry,cáccâulệnh trongkhốicatchsẽđượcthựchiệntuỳvàokiểu củangoạilệ. • Saukhithựchiệnxongkhốicatch,điềukhiển sẽđượctrảlạichochươngtrình. 10Khốitry/catch• Vídụ1: try { methodeX(); System.out.println(“CaulenhngaysaumethodX()”); } catch(NullPointerExceptione) { System.out.println(“Coloitrongkhoitry”); } System.out.println(“Caulenhsautry/catch”); 11Khốitry/catch• Vídụ2: try{ A(); }catch(Exceptione){ System.out.println(“ColoitrongA()”); }• Vídụ3: try{ x=System.in.read(); System.out.println(“x=“+x); }catch(IOExceptione){ System.out.println(“Error:“+e.getMessage()); } 12Khốitry/catch• Vídụ4:try{Strings=buff.readLine();inta=Integer.parseInt(s);x[i++]=a;}catch(IOExceptione){System.out.println(“ErrorIO:“+e.getMessage());}catch(NumberFormatExceptione){System.out.println(“ErrorFormat:“+e.getMessage());}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(“ErrorIndex:“+e.getMessage());} 13Khốifinally• Khimộtngoạilệxảyra,chươngtrìnhdừnglại, mộtsốcôngviệc“dọndẹp”cóthểsẽkhôngđược thựchiện(vídụnhưđóngfile).• Khốifinallyđảmbảorằngcáccâulệnhtrongđó luônđượcthựchiện,kểcảkhingoạilệxảyra. try { doSomething();//phươngthứcnàycóthểgâyrangoạilệ }finally{ cleanup(); } 14Tómtắtvềxửlýngoạilệ• Cácngoạilệxảyrakhigặplỗi.• Cóthểbắtvàxửlýcácngoạilệbằngcáchsử dụngkhốitry/catch.Nếukhôngchươngtrìnhsẽ kếtthúcngay(vớiứngdụngcon ...
Nội dung trích xuất từ tài liệu:
Bài giảng Xử lý ngoại lệXửlýngoạilệ • Xửlýlỗivàngoạilệ • Khốitry/catch/finally • Cáclớpngoạilệ • Xâydựnglớpngoạilệ • Lantruyềnngoạilệ • Tunglạingoạilệ • Bàitập 1Xửlýlỗivàngoạilệ• TrongmộtsốngônngữnhưC,việcxửlýlỗithường đượccàiđặtngaytạicácbướcthựchiệncủa chươngtrình.Cáchàmsẽtrảvềmộtcấutrúclỗikhi gặplỗi.• Vídụ:Tìmkiếmphầntửtrongmộtdanhsách • ErrorStructerror=newErrorStruct(); • TableEntryentry=lookup(“Marianna”,employee,error); • if(entry==null) • { • returnerror; • } 2Xửlýlỗivàngoạilệ Mãlệnhvàmãxửlýlỗinằmxenkẽkhiếnlập trìnhviênkhótheodõiđượcthuậttoánchínhcủa chươngtrình. KhimộtlỗixảyratạihàmA,tấtcảcáclờigọi hàmlồngnhauđếnAđềuphảixửlýlỗimàAtrả về. 3Xửlýlỗivàngoạilệ• TrongJava,việcxửlýlỗicóthểđượccàiđặttrong mộtnhánhđộclậpvớinhánhchínhcủachương trình.• Lỗiđượccoinhưnhữngtrườnghợpngoạilệ (exceptionalconditions).Chúngđượcbắt/ném (catchandthrow)khicólỗixảyra. =>Mộttrườnghợplỗisẽchỉđượcxửlýtạinơicần xửlý. =>Mãchínhcủachươngtrìnhsángsủa,đúngvới thiếtkếthuậttoán. 4Vídụ1import java.awt.Point;public class MyArray{ public static void main(String[ ] args) { System.out.println(Goi phuong thuc methodeX()); methodeX(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void methodeX() { Point[ ] pts = new Point[10]; for(int i = 0; i < pts.length; i++) { pts[i].x = i; pts[i].y = i+1; } }} 5Kếtquảthựcthivídụ1GoiphuongthucmethodeX()Exceptioninthreadmainjava.lang.NullPointerExceptionatMyArray.methodeX(MyArray.java:14)atMyArray.main(MyArray.java:7)Giảithích:HệthốngđãtungramộtexceptionthuộclớpNullPointerExceptionkhigặplỗi.Sauđóchươngtrìnhkếtthúc. 6Vídụ2public class MyDivision { public static void main(String[ ] args) { System.out.println(Goi phuong thuc A()); A(); System.out.println(Chuong trinh ket thuc binh thuong); } public static void A() { B(); } public static void B() { C(); } public static void C() { float a = 2/0; }} 7Kếtquảthựcthivídụ2GoiphuongthucA()Exceptioninthreadmainjava.lang.ArithmeticException:/byzeroatMyDivision.C(MyDivision.java:14)atMyDivision.B(MyDivision.java:11)atMyDivision.A(MyDivision.java:8)atMyDivision.main(MyDivision.java:4)Giảithích:PhươngthứcA()gọiB(),B()gọiC(),C()gâyralỗichiacho0vàhệthống“ném”ramộtexceptionthuộclớpArithmeticException.Sauđóchươngtrìnhkếtthúc. 8Ngoạilệ• Khimộtphươngthứcgặplỗinàođó,vídụ nhưchiakhông,vượtkíchthướcmảng,mở filechưatồntại…thìcácngoạilệsẽđược némra.Chươngtrìnhdừnglạingaylậptức, toànbộphầnmãphíasausẽkhôngđược thựcthi.• Javahỗtrợcáchthứcđểxửlýngoạilệ (exceptionhandling)tuỳtheonhucầucủa chươngtrình. 9Xửlýngoạilệ• Khốitry/catch • Đặtđoạnmãcókhảnăngxảyrangoạilệtrong khốitry • Đặtđoạnmãxửlýngoạilệtrongkhốicatch • Khixảyrangoạilệtrongkhốitry,cáccâulệnh trongkhốicatchsẽđượcthựchiệntuỳvàokiểu củangoạilệ. • Saukhithựchiệnxongkhốicatch,điềukhiển sẽđượctrảlạichochươngtrình. 10Khốitry/catch• Vídụ1: try { methodeX(); System.out.println(“CaulenhngaysaumethodX()”); } catch(NullPointerExceptione) { System.out.println(“Coloitrongkhoitry”); } System.out.println(“Caulenhsautry/catch”); 11Khốitry/catch• Vídụ2: try{ A(); }catch(Exceptione){ System.out.println(“ColoitrongA()”); }• Vídụ3: try{ x=System.in.read(); System.out.println(“x=“+x); }catch(IOExceptione){ System.out.println(“Error:“+e.getMessage()); } 12Khốitry/catch• Vídụ4:try{Strings=buff.readLine();inta=Integer.parseInt(s);x[i++]=a;}catch(IOExceptione){System.out.println(“ErrorIO:“+e.getMessage());}catch(NumberFormatExceptione){System.out.println(“ErrorFormat:“+e.getMessage());}catch(ArrayIndexOutOfBoundsExceptione){System.out.println(“ErrorIndex:“+e.getMessage());} 13Khốifinally• Khimộtngoạilệxảyra,chươngtrìnhdừnglại, mộtsốcôngviệc“dọndẹp”cóthểsẽkhôngđược thựchiện(vídụnhưđóngfile).• Khốifinallyđảmbảorằngcáccâulệnhtrongđó luônđượcthựchiện,kểcảkhingoạilệxảyra. try { doSomething();//phươngthứcnàycóthểgâyrangoạilệ }finally{ cleanup(); } 14Tómtắtvềxửlýngoạilệ• Cácngoạilệxảyrakhigặplỗi.• Cóthểbắtvàxửlýcácngoạilệbằngcáchsử dụngkhốitry/catch.Nếukhôngchươngtrìnhsẽ kếtthúcngay(vớiứngdụngcon ...
Tìm kiếm theo từ khóa liên quan:
Xử lý ngoại lệ Bài giảng Xử lý ngoại lệ Lớp ngoại lệ Xây dựng lớp ngoại lệ Lan truyền ngoại lệ Tung lại ngoại lệTài liệu liên quan:
-
Bài giảng Lập trình Python: Bài 8 - Trương Xuân Nam
28 trang 24 0 0 -
Giáo trình Lập trình hướng đối tượng với Java: Phần 2
139 trang 22 0 0 -
Bài giảng Nhập môn Java: Bài 7 – Võ Tấn Dũng
35 trang 21 0 0 -
Bài giảng Lập trình Java: Bài 6 - Bùi Trọng Tùng
18 trang 21 0 0 -
Bài giảng Lập trình cho khoa học dữ liệu - Bài 5: Xử lý dữ liệu trong Python
19 trang 21 0 0 -
Bài giảng Programming technique: Chương 5 - Lương Mạnh Bá
44 trang 20 0 0 -
34 trang 19 0 0
-
Bài giảng Lập trình hướng đối tượng - Bài 8: Ngoại lệ và xử lý ngoại lệ
0 trang 19 0 0 -
Bài giảng Nhập môn lập trình khoa học dữ liệu: Bài 6 - Trương Xuân Nam
23 trang 19 0 0 -
Bài giảng Kỹ thuật lập trình Java - Chương 4.2: Ngoại lệ
29 trang 18 0 0