Danh mục

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    
Thư viện của tui

Hỗ trợ phí lưu trữ khi tải xuống: 9,000 VND Tải xuống file đầy đủ (33 trang) 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 ...

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