... hợp tất tiến trình xửlý lỗi nơi Lúc đoạn mã bạn rõ ràng Java sử dụng khối ‘try’ ‘catch’ để xửlýngoạilệ Các câu lệnh khối ‘try’ chặn ngoạilệ khối ‘catch’ xửlýngoạilệ Các khối chứa ... hành xửlýngoạilệ 7.4.2 Các khối ‘try’ ‘catch’ Khối ‘try-catch’ sử dụng để thi hành mô hình ‘catch throw’ việc xửlýngoạilệ Khối ‘try’ chứa lệnh thi hành Các ngoạilệ bị chặn thi hành câu lệnh ... khác 7.4 Mô hình xửlýngoạilệ Trong Java, mô hình xửlýngoạilệ kiểm tra việc xửlý hiệu ứng lề (lỗi), biết đến mô hình ‘catch throw’ Trong mô hình này, lỗi xảy ra, ngoạilệ bị chặn đưa vào...
... Bài Xửlýngoạilệ • • • • • • • Xửlý lỗi ngoạilệ Khối try/catch/finally Các lớp ngoạilệ Xây dựng lớp ngoạilệ Lan truyền ngoạilệ Tung lại ngoạilệ Bài tập Xửlý lỗi ngoạilệ • Trong ... ngoạilệ C() lại không xửlýngoạilệ này, nơi xửlý nơi mà C() gọi, phương thức B() Nếu B() không xửlý phải xửlýngoạilệ A()…Quá trình gọi lan truyền ngoạilệ Nếu đến main() không xửlýngoại ... try { doSomething(); // phương thức gây ngoạilệ } finally { cleanup(); } 15 Tómtắtxửlýngoạilệ • Các ngoạilệ xảy gặp lỗi • Có thể bắt xửlýngoạilệ cách sử dụng khối try/catch Nếu không...
... ‘try’ tạo ngoạilệ có loại e2, thực / /xử lýngoạilệ không chuyển xuống khối 'catch' } catch(Exception eN) { // Nếu lệnh khối ‘try’ tạo ngoạilệ có loại eN, thực / /xử lýngoạilệ không chuyển ... gây ngoạilệ } catch(Exception e1) { // Nếu lệnh khối ‘try’ tạo ngoạilệ có loại e1, thực / /xử lýngoạilệ không chuyển xuống khối 'catch' } catch(Exception e2) { // Nếu lệnh khối ‘try’ tạo ngoại ... thành ngôn ngữ lập trình mạnh 1 Vì phải xửlýngoạilệ Một chương trình nên có chế xửlýngoạilệ thích hợp Nếu không, chương trình bị ngắt ngoạilệ xảy Trong trường hợp đó, tất nguồn tài...
... b t x lý bi t l V n i v i ng i l p trình java ph i bi t c n mã c a có th gây l i Khi h ã khoanh vùng c n mã có th gây l i h s t n mã, có kh n ng gây l i ó kh i try ( th làm), t n mã x lý l i ... chuy n bi t l ó ph ng th c ã g i ph ng th c trình c ti p t c cho n tìm th y mã x lý bi t l , n u không tìm th y mã x lý bi t l chu i ph ng th c g i nhau, ch ng trình có th ch m d t in thông báo l ... th c hi n cho dù ngo i l có x y kh i try hay không } Trang 93 Th c hi n kh i try yes Tìm kh i x lý l i (kh i catch) th c hi n u ngo i l sinh kh i try m t th hi n c a l p ngo i l Có ngo i x y kh...
... v.v… chặn ngoạilệ Đoạn mã chương trình tạo ngoạilệ Lớp ‘throwable’ Java cung cấp lớp lớp Exception , lớp lớp cha ngoạilệ khác 7.4 Mô hình xửlýngoạilệ Trong Java, mô hình xửlýngoạilệ kiểm ... Việc xửlýngoạilệ cho phép bạn kết hợp tất tiến trình xửlý lỗi nơi Lúc đoạn mã bạn rõ ràng Java sử dụng khối ‘try’ ‘catch’ để xửlýngoạilệ Các câu lệnh khối ‘try’ chặn ngoạilệ khối ... hình 7.6 Hình 7.6 Ngoạilệ tự định nghĩa 7.8 Danh sách ngoạilệ Bảng sau liệt kê số ngoại lệ: Ngoạilệ RuntimeException 38 Lớp cha thứ tự phân cấp ngoạilệ Lớp sở cho nhiều ngoạilệ java.lang Core...
... hợp tất tiến trình xửlý lỗi nơi Lúc đoạn mã bạn rõ ràng Java sử dụng khối ‘try’ ‘catch’ để xửlýngoạilệ Các câu lệnh khối ‘try’ chặn ngoạilệ khối ‘catch’ xửlýngoạilệ Các khối chứa ... hành xửlýngoạilệ 7.4.2 Các khối ‘try’ ‘catch’ Khối ‘try-catch’ sử dụng để thi hành mô hình ‘catch throw’ việc xửlýngoạilệ Khối ‘try’ chứa lệnh thi hành Các ngoạilệ bị chặn thi hành câu lệnh ... khác 7.4 Mô hình xửlýngoạilệ Trong Java, mô hình xửlýngoạilệ kiểm tra việc xửlý hiệu ứng lề (lỗi), biết đến mô hình ‘catch throw’ Trong mô hình này, lỗi xảy ra, ngoạilệ bị chặn đưa vào...
... 7.3 Xửlýngoạilệ Khi ngoạilệ xảy ra, đối tượng tương ứng với ngoạilệ tạo Đối tượng sau truyền cho phương thức nơi mà ngoạilệ xảy Đối tượng chứa thông tin chi tiết ngoạilệ Thông tin nhận xử ... cha ngoạilệ khác 7.4 Mô hình xửlýngoạilệ Trong Java, mô hình xửlýngoạilệ kiểm tra việc xửlý hiệu ứng lề (lỗi), biết đến mô hình ‘catch throw’ Trong mô hình này, lỗi xảy ra, ngoạilệ bò chặn ... kết hợp tất tiến trình xửlý lỗi nơi Lúc đoạn mã bạn rõ ràng Java sử dụng khối ‘try’ ‘catch’ để xửlýngoạilệ Các câu lệnh khối ‘try’ chặn ngoạilệ khối ‘catch’ xửlýngoạilệ Các khối chứa nhiều...
... thúc Một trình xửlýngoạilệ khối lệnh chương trình thiết kế xửlýngoạilệ mà chương trình phát sinh Xửlýngoạilệ thực thi trong câu lệnh catch Một cách lý tưởng ngoạilệ bắt xử lý, chương trình ... hoạt động hành không thực việc xửlýngoại lệ, chức bị chấm dứt hàm gọi nhận thay đổi đến việc xửlýngoạilệ Nếu hàm gọi không thực việc xửlýngoại lệ, ngoạilệxửlý sớm CLR, điều dẫn đến chương ... kiếm trình xửlýngoạilệ Một lần Func1 đoạn xửlýngoạilệ Và CLR trả hàm Main Tại hàm Main không có, nên CLR gọi trình mặc định xửlýngoại lệ, việc đơn giản xuất thông điệp lỗi Câu lệnh catch...
... ArithmeticException Nếu đảo thứ tự câu lệnh catch, ngoạilệ DivideByZeroException phù hợp với khối xửlýngoạilệ Arith- meticException Và việc xửlýngoạilệ không giao cho khối xửlý DivideByZeroException ... E phát sinh ngoại lệ, tạo khối try/catch để bắt giữ ngoạilệ chỗ gần nơi phát sinh ngoạilệ Chúng ta tạo nhiều khối xửlýngoạilệ chung đoạn chương trình mức cao trường hợp ngoạilệ không đoán ... phép ngoạilệxửlý khối xửlýngoạilệ DivideByZeroException Trình biên dịch nhận DivideByZeroException không thực thông báo lỗi biên dịch Chúng ta phân phối câu lệnh try/ catch, cách bắt giữ ngoại...
... InnerException ngoại lệ, nên có ngoạilệ bên Do vậy, toàn dây chuyền ngoạilệ đóng tổ (nest) ngoạilệ với ngoạilệ khác Giống lật đật, chứa đến lượt bên lại chứa Ví dụ 13.8: Phát sinh lại ngoạilệ & ngoại ... phát sinh ngoạilệ khác, phải nhúng ngoạilệ ban đầu vào bên ngoạilệ để phương thức gọi hiểu lai lịch nguồn gốc ngoạilệ Thuộc tính InnerException ngoạilệ cho phép truy cập ngoạilệ ban đầu ... Các ngoạilệ thường xuất Tạo riêng ngoạilệ CLR cung cấp kiểu liệu ngoạilệ bản, ví dụ trước tạo vài kiểu ngoạilệ riêng Thông thường cần thiết phải cung cấp thông tin mở rộng cho khối catch ngoại...
... try Cú pháp kh i catch sau catch (Exception-class [var1]) { // xửlýngoạilệ } catch (Exception-class [var2]) { // xửlýngoạilệ } Ví d try-catch Chương trình bị terminate Chương trình kết ... VD có try-catch-finally Luôn thực thi dù có hay ngoại lệ! L nh throw u Cho phép ném m t ngo i l v Cú pháp: throw exception-object Phát sinh ngoạilệ L p Exception u Có lo i ngo i l v Ngo i l phát ... 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 lý // ngoạilệ phát sinh // đoạn code bị bỏ qua, dù file chưa đóng Kh i try-catch có ph n option finally...
... ngoạilệ C() lại không xửlýngoạilệ này, nơi xửlý nơi mà C() gọi, phương thức B() Nếu B() không xửlý phải xửlýngoạilệ A()…Quá trình gọi lan truyền ngoạilệ Nếu đến main() không xửlýngoại ... try { doSomething(); // phương thức gây ngoạilệ } finally { cleanup(); } 14 TÓMTẮTVỀXỬLÝNGOẠILỆ • Các ngoạilệ xảy gặp lỗi • Có thể bắt xửlýngoạilệ cách sử dụng khối try/catch Nếu không ... cách thức để xửlýngoạilệ (exception handling) tuỳ theo nhu cầu chương trình XỬLÝNGOẠILỆ • Khối try/catch – Đặt đoạn mã có khả xảy ngoạilệ khối try – Đặt đoạn mã xửlýngoạilệ khối catch...
... Nguyễn Đức Hiển – Bài giảng Lập trình Java XửlýNgoạilệXửlýNgoạilệ sử dụng khối try/catch Ngoài ra, phương thức ném Ngoạilệ chuyển việc bắt Ngoạilệ cho đoạn code gọi phương thức Nguyễn ... bắt Ngoạilệ sử dụng khối try/catch Nếu Ngoạilệ ném bên khối try, đối tượng Ngoạilệ truyền đối số tới khối catch Ngoạilệ kiểm soát Nguyễn Đức Hiển – Bài giảng Lập trình Java Bắt Ngoạilệ ... phương thức ném Ngoạilệ bạn muốn gọi bạn phải xửlýNgoạilệ phương thức Tuy nhiên, Ngoạilệ mà phương thức ném lớp dẫn xuất lớp RunTimeException không cần phải tường minh bắt Ngoạilệ (điều bao...
... phát ngoạilệ Mô hình xửlýngoạilệ Java gọi ‘catch and throw’ Trong mô hình này, ngoạilệ xảy ra, ngoạilệ bị chặn chương trình chuyển đến khối xửlýngoạilệ Người lập trình phải xửlýngoạilệ ... gây ngoạilệ } catch(Exception e1) { // Nếu lệnh khối ‘try’ tạo ngoạilệ / /xử lýngoạilệ không chuyển xuống khối } catch(Exception e2) { // Nếu lệnh khối ‘try’ tạo ngoạilệ / /xử lýngoạilệ không ... ngoạilệ Chương trình tự tạo ngoạilệ Lớp ‘Throwable’ Java cung cấp lớp lớp Exception (lớp thừa kế), lớp lớp cha tấtngoạilệ khác 7.4 Mô hình xửlýngoạilệ Trong Java, mô hình xửlýngoại lệ...
... ngoạilệ C() lại không xửlýngoạilệ này, nơi xửlý nơi mà C() gọi, phương thức B() Nếu B() không xửlý phải xửlýngoạilệ A()…Quá trình gọi lan truyền ngoạilệ Nếu đến main() không xửlýngoại ... • • • Xửlý lỗi ngoạilệ Khối try/catch/finally Các lớp ngoạilệ Xây dựng lớp ngoạilệ Lan truyền ngoạilệ Tung lại ngoạilệ Bài tập XỬLÝ LỖI VÀ NGOẠILỆ • Trong số ngôn ngữ C, việc xửlý lỗi ... try { doSomething(); // phương thức gây ngoạilệ } finally { cleanup(); } 15 TÓMTẮTVỀXỬLÝNGOẠILỆ • Các ngoạilệ xảy gặp lỗi • Có thể bắt xửlýngoạilệ cách sử dụng khối try/catch Nếu không...
... bắt ngoại lệ: xửlý với ngoạilệNgoại lệ: đối tượng mang thông tin lỗi xảy ngoạilệ ném tự động ngoạilệ ném tường minh Nguyễn Việt Hà Xửlýngoạilệ Phả hệ ngoạilệ Java Nguyễn Việt Hà Xửlýngoại ... dung Khái niệm xửlýngoạilệ (exception handling) Ném bắt ngoạilệ Khai báo ngoạilệ Ném lại ngoạilệ Định nghĩa ngoạilệXửlýngoạilệ constructor Nguyễn Việt Hà Xửlýngoạilệ Tài liệu tham ... Hà XửlýngoạilệXửlýngoạilệ (Exception handling) Java Xửlýngoạilệ Java kế thừa từ C++ Dựa chế ném bắt ngoạilệ ném ngoại lệ: dừng chương trình chuyển điều khiển lên mức (nơi bắt ngoại lệ) ...
... A= 2x + 7y Yêu cầu xửlýngoạilệ xảy Viết chương trình cho phép tạo mảng chiều cỡ mxn với m,n nhập từ bàn phím Cài đặt xửlýngoạilệ cần thiết 32 Bài tập Xây dựng lớp ngoạilệ DateException cho ... tháng Viết chương trình cho phép người dùng nhập vào ngày, tháng năm, thông tin không hợp lệ tung ngoạilệ DateException, sau thông báo cho người nhập biết cho phép người dùng nhập lại 33 Bài tập ... thí sinh, tên điểm thi môn) Điều xảy tạo đối tượng thuộc lớp Candidate với liệu đưa vào không hợp lệ ? Cài đặt lớp CandidateException để bắt lỗi Yêu cầu có lỗi cho biết tên mã thí sinh bị lỗi 34...
... ngoạilệ C() lại không xửlýngoạilệ này, nơi xửlý nơi mà C() gọi, phương thức B() Nếu B() không xửlý phải xửlýngoạilệ A()…Quá trình gọi lan truyền ngoạilệ Nếu đến main() không xửlýngoại ... không xửlýngoạilệ tung từ C() chương trình phải dừng lại 29 Ném lại ngoạilệ • Trong khối catch, ta không xửlý trực tiếp ngoạilệ mà lại ném lại ngoạilệ cho nơi khác xửlý catch (IOException ... Lan truyền ngoạilệ • Tình • Giả sử main() gọi phương thức A(), A() gọi B(), B() gọi C() Khi ngăn xếp phương thức tạo • Giả sử C() xảy ngoạilệ 28 Lan truyền ngoạilệ C() C() tung ngoạilệ B() B()...