lỖi lÚc thỰc thi và quÁ trÌnh gom rÁc · thoại, có 2 tình huống: người dùng...

47
1 Exception – Garbage Collection Chương 6- Exception-Gom Rác Slide 1/41 LI LÚC THC THI và QUÁ TRÌNH GOM RÁC

Upload: others

Post on 04-Nov-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

1  

Exception – Garbage Collection

Chương 6- Exception-Gom Rác Slide 1/41

LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC

Page 2: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

2  2  

Mục tiêu

! Giải thích được lỗi cú pháp và lỗi thực thi chương trình.

! Giải thích được mô hình đối tượng Exception của Java.

! Giải thích được cú pháp bẫy lỗi bằng try...catch... finally.

! Sử dụng được throw và throws trong code, ! Tự định nghĩa được Exception. ! Giải thích được cơ chế gom rác của Java.

Chương 6- Exception-Gom Rác Slide 2/41

Page 3: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

3  3  

Nội dung

-  Các loại lỗi của chương trình -  Cấu trúc các lớp quản lý lỗi của Java. -  Bẫy lỗi bằng try...catch...finally -  Lan truyền lỗi -  Xuất Exception -  Tự định nghĩa Exception - Cơ chế gom rác

Chương 6- Exception-Gom Rác Slide 3/41

Page 4: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

4  4  

6.1- Các loại lỗi của chương trình

Exception-Gom Rác Slide 4/41

Bài toán Code

Chương trình

Hiện thực Compile

Run

Syntax error

No Syntax error

Correct result END

BEGIN

Run-time error ( Exception )

Wrong result

?

Page 5: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

5  5  

Các loại lỗi của chương trình

! Compile-time error = Syntax error ! Run-time error = Exception, tình huống bất bình

thường đã xẩy ra trong khi chương trình thực thi.

! Khi có Exception: "  Có thể là máy bị treo (halt). "  Chương trình ngắt đột ngột, điều khiển trả về cho OS,

OS thu hồi bộ nhớ của chương trình ( đuổi ra ngoài ). ! Cần có cơ chế điều khiển tình huống này.

Chương 6- Exception-Gom Rác Slide 5/41

Page 6: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

6  6  

Cấu trúc các class quản lý lỗi của Java

Chương 6- Exception-Gom Rác Slide 6/41

Object

Throwable

Exception Error

AWTError

ThreadDead

SQLException

ClassNotFoundException

RuntimeException

ArithmeticException

NullPointerException

NumberFormatException Khi 1 error/exception xẩy ra, ta nói rằng nó bị “thrown” (throw) …

Page 7: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

7  7  

Lớp Throwable

! Các lớp Exception đều được dẫn ra từ lớp này. ! Chứa các hành vi giúp truy xuất thông tin về lỗi

như: "  nội dung mô tả lỗi : getMesage(), toString() "  nội dung stack lúc gây lỗi: getStackTrace(),

printStackTrace(), "  ....

Chương 6- Exception-Gom Rác Slide 7/41

Page 8: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

8  8  

Một số lớp quản lý lỗi của Java class Giải thích

Exception Lớp nền của các run-time error

RuntimeException Lớp nền của nhiều lớp run-time error

ArithmeticException Lỗi do thực thi một phép toán

IllegalArgumentException Lỗi sai đối số của hàm

ArrayIndexOutOfBoundsException Lỗi do chỉ số ngoài tầm của mảng

NullPointerException Lỗi do truy xuất một đối tượng mà chưa khởi tạo

SecurityException Lỗi do truy cập bị cấm

ClassNotFoundException Lỗi do không tìm thấy file.class

Chương 6- Exception-Gom Rác Slide 8/41

Page 9: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

9  9  

Một số lớp quản lý lỗi của Java

Lớp Giải thích NumberFormatException Lỗi do không đúng dạng số

IOException Lỗi xuất nhập

FileNotFoundException Lỗi do không tìm thấy file

EOFException Lỗi do cố truy cập nội dung 1 file khi đã ở cuối file

IllegalAccessException Lỗi do truy cập 1 class bị cấm

NoSuchMethodException Lỗi do viết sai tên hành vi

InterruptedException Lỗi do ngắt ngang 1 luồng lệnh đang được thực thi

Chương 6- Exception-Gom Rác Slide 9/41

Page 10: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

10  10  

Bẫy lỗi bằng try...catch...finally

! Bẫy lỗi bằng cú pháp: try... catch ... finally ...

Chương 6- Exception-Gom Rác Slide 10/41

try {

< các lệnh có khả năng gây lỗi> } catch ( Exception1 e1) {

< code xử lý lỗi> } catch ( Exception2 e2) {

< code xử lý lỗi> } . . finally {

<các lệnh sẽ làm dù có lỗi hay không> }

Page 11: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

11  11  

Ví dụ:

Page 12: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

12  12  

Áp dụng:

! Hãy bẫy lỗi cho phương thức sau:

Chương 6- Exception-Gom Rác

Page 13: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

13  13  

1 giải pháp:

Chương 6- Exception-Gom Rác

Page 14: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

14  14  

Bẫy lỗi bằng try...catch...finally

! Dự đoán lỗi: "  Tại một thời điểm, developer có thể dự đoán

chính xác các lỗi có thể xẩy ra. Thí dụ: Nhập dữ liệu từ bàn phím vào 1 số thông qua hộp thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ.

" Có thể tổng quát hoá các lỗi nhờ lớp cha (Exception) để quản lý chung.

Chương 6- Exception-Gom Rác Slide 14/41

Page 15: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

15  15  

Ví dụ

! Bẫy lỗi cho đoạn chương trình sau:

Chương 6- Exception-Gom Rác

Page 16: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

16  16  

Bẫy lỗi- Thí dụ

Chương 6- Exception-Gom Rác Slide 16/41

Page 17: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

17  17  

Bẫy lỗi – Thí dụ

Chương 6- Exception-Gom Rác Slide 17/41

Page 18: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

18  18  

Bẫy lỗi mức tổng quát

Chương 6- Exception-Gom Rác Slide 18/41

Dùng đối tượng mức tổng quát ( lớp Exception). Xem lại hình vẽ về cấu trúc quản

lý lỗi của Java trong các slide trước

Page 19: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

19  19  

Bẫy lỗi tham khảo mảng ngoài tầm chỉ số

Chương 6- Exception-Gom Rác Slide 19/41

Mảng 5 phần tử mà lại truy cập a[10]

Bẫy lỗi mức tổng quát

Page 20: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

20  20  

6.4- Lan truyền lỗi

! Exception propagation ! Lỗi lan truyền từ trong ra cho đến khi gặp bẫy lỗi

hoặc tới main và ứng dụng bị ngưng.

Chương 6- Exception-Gom Rác Slide 20/41

A()

B()

C()

D() Exception

Chiều gọi hàm

Chiều lan truyền lỗi

catch(...)

Page 21: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

21  21  

Lan truyền lỗi- Thí dụ 1

Chương 6- Exception-Gom Rác Slide 21/41

main(...)

output(...)

getPos(...)

Page 22: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

22  22  

Chặn lan truyền lỗi- Thí dụ

Chương 6- Exception-Gom Rác Slide 22/41

Bẫy lỗi

và chương trình tiếp tục

Page 23: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

23  23  

Chặn lan truyền lỗi- Ví dụ 2

! Xem Propagation.java Sách Java Software Solution

Page 24: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

24  24  

Gọi hành vi có xuất lỗi trong code

Chương 6- Exception-Gom Rác Slide 24/41

Hành vi exec(String) của lớp RunTime có throw một exception. Khi sử dụng một tác vụ có xuất exception trong khai báo một method, trình biên dịch sẽ nhắc nhở chúng ta rằng cần phải bẫy lỗi này trong code

Chương trình gọi Calculator của MS Windows trong Java

Xem CallExec.java

Page 25: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

25  25  

6.5- Xuất Exception

! Exception thường do JVM xuất ra. ! Code chương trình có thể chủ động tạo ra 1 đối tượng

exception bằng từ khóa throw ! Cú pháp : throw new <Exception name(“Message”)> ! Phương thức có xuất Exception thì phải dùng throws

khai báo loại Exception mà nó xuất, ở đầu phương thức

Chương 6- Exception-Gom Rác Slide 25/41

Page 26: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

26  26  

Xuất Exception

! Xem themNV_throwException.java

Chương 6- Exception-Gom Rác Slide 26/41

Xem thêm Exception_throwFunction.java

themNV_throwException.java

Page 27: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

27  27  

Checked exceptions ! Một exception có thể thuộc loại checked hoặc

unchecked.

! checked exception phải được bắt bởi một phương thức hoặc phải được liệt kê trong mệnh đề throws của bất kỳ phương thức mà có ném hoặc lan truyền nó.

! throws clause được thêm vào cuối tiêu đề phương thức.

! Trình biên dịch sẽ phát sinh error nếu checked exception không được bắt hoặc xác nhận trong throws clause.

Page 28: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

28  28  

Unchecked exceptions ! unchecked exception không cần xử lý tường

minh (mặc dù ta có thể xử lý nó).

! Trong Java, exceptions thuộc loại unchecked chỉ có objects kiểu RuntimeException hoặc kiểu lớp con của nó.

! Errors tương tự như RuntimeException vì:

"  Errors không nên caught

"  Errors không đòi hỏi có throws clause

Xem Check_or_uncheck.java

Page 29: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

29  29  

Hierarchy of Exception classes

Page 30: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

30  30  

6.6- Tự định nghĩa Exception

! Người lập trình có thể tự định nghĩa một loại Exception dựa trên các loại Exception đã có.

! Phương pháp khai báo một user-defined exception: "  Tên lớp exception "  Tên lớp cha "  Thông báo lỗi.

Chương 6- Exception-Gom Rác Slide 30/41

Page 31: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

31  31  

User-defined exceptions

! Nguyên tắc viết exception classes:

"  Tất cả exceptions phải là con của Throwable

" Nếu bạn muốn viết một checked exception, bạn cần extend the Exception class

" Nếu viết runtime exception, cần extend the RuntimeException class.

Page 32: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

32  32  

Tự định nghĩa Exception

Chương 6- Exception-Gom Rác Slide 32/41 Xem MyException.java

Page 33: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

33  33  

Bài tập Cho mô hình Person<--- Student (Person có

họTên, CMND, Student có MSSV, điểmTB, nhapThôngTin())

! Viết class Student, bẫy lỗi khi nhập điểm sai kiểu (xử lý: thông báo, nhập lại).

! Viết class QuảnLý chứa danh sách Person, có thêm vào danh sách, xuất danh sách. Ném lỗi khi danh sách đầy, catch lỗi ở main (xử lý: thông báo, nới rộng danh sách?).

Page 34: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

34  34  

Cơ chế gom rác

! Rác: Đối tượng không còn được tham khảo đến.

! Garbage Collector: Trình gom rác, là một luồng được thực thi khi “máy rảnh” hoặc là khi có yêu cầu cấp bộ nhớ mà bộ nhớ “không còn đủ”.

! Application chủ động gọi trình gom rác bằng: System.gc(); Tuy nhiên, GC có độ ưu tiên kém, nếu JVM rảnh thì GC mới thực thi.

! Có thể thông qua môi trường thực thi(runtime environment) để gom rác tức thì

Chương 6- Exception-Gom Rác Slide 34/41

Page 35: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

35  35  

Gom rác: Đối tượng và tham khảo đến đối tượng

!  Java cung cấp phương thức finalize() họat động như 1 Destructor của C++ để hủy các quá trình trước khi qúa trình trả điều khiển về cho hệ điều hành.

! Chú ý: Chỉ có đối tượng mới bị gom rác chứ tham khảo đến đối tượng không bị gom.

! Cú pháp: protected void finalize() throws Throwable

Chương 6- Exception-Gom Rác Slide 35/41

obj 1000

1000

A obj; obj = new A(...);

0

1000

obj = null;

rác

0

Page 36: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

36  36  

Cơ chế gom rác- Nhận diện rác

Chương 6- Exception-Gom Rác Slide 36/41

{ ... Object a = new Object(); Object b= a; a= null; } Đối tượng vừa tạo đã là rác chưa?

{ ..... Object a = new Object(); a= null; } Đối tượng vừa tạo đã là rác chưa?

{ ..... Object a = new Object(); // đối tượng 1 a= new Object (); // đối tượng 2 } Đối tượng 1đã là rác chưa?

Page 37: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

37  37  

Thí dụ: Truy xuất môi trường thực thi và Chủ động gom rác

Chương 6- Exception-Gom Rác Slide 37/41

Page 38: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

38  38  

Lớp RunTime ! Mô tả môi trừơng của máy ảo. ! Cho phép gọi 1 ứng dụng.

Chương 6- Exception-Gom Rác Slide 38/41

Page 39: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

39  39  

Lớp RunTime – Gọi ứng dụng của OS

Chương 6- Exception-Gom Rác Slide 39/41

xem CallExec.java

Page 40: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

40  40  

Truy cập lớp System

Chương 6- Exception-Gom Rác Slide 40/41

Ba đối tượng thành phần: in : Bàn phím out, err : màn hình Các nhóm hành vi: -  Truy xuất môi trường (env) -  Truy xuất thuộc tính (property) -  Truy xuất thời gian (Time)

Page 41: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

41  41  

Thí dụ

Chương 6- Exception-Gom Rác Slide 41/41

testDateTime.java

Page 42: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

42  42  

Tóm tắt

! 2 loại error: syntax error, run-time error. ! run-time error được gọi là exception. ! Khi một exception, JVM xuất động một object

(chứa mô tả về exception này). !  Lớp trên cùng của các error là lớp Throwable

( lớp cho các đối tượng xuất động của JVM) ! Có rất nhiều Exception để trong các gói thư viện

của Java.

Chương 6- Exception-Gom Rác Slide 42/41

Page 43: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

43  43  

Tóm tắt ! Bẫy lỗi bằng try ... catch... finally ! Nếu hành vi chứa một code có thể gây lỗi, chỉ thị

bằng throws ! Trong code của hành vi, có thể xuất một

exception bằng throw new ExceptionClass (“Msg”); ! Tự định nghĩa một Exception là khai báo một lớp

kế thừa một Exception đã có.

Chương 6- Exception-Gom Rác Slide 43/41

Page 44: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

44  44  

Tóm tắt

! Java cung cấp sẵn một garbage collector. ! Chủ động gọi GC bằng System.gc() hoặc thông qua một đối tượng RunTime.

! class RunTime chứa thông tin về môi trường thức thi Java app.

! Dữ liệu ngày tháng có thể dùng java.util.Date, hoặc GregorianCalendar.

! Có thể thông qua đối tượng System để lấy thời gian hiện hành của máy (theo mili, nano second).

Chương 6- Exception-Gom Rác Slide 44/41

Page 45: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

45  45  

Bài tập - cài đặt bẫy lỗi ! Viết class ! Xác định lỗi, phương án bẫy, cài đặt class

PhanSo -  tuSo: int -  mauSo: int + constructor +getTuSo(): int +setTuSo(int): void +getMauSo(): int +setMauSo(int): void +nhapPhanSo(): void + nhanPhanSo(PhanSo o): PhanSo

Page 46: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

46  46  

Bài tập

! Tạo lớp mô tả và thao tác trên mảng các số int có quản lý lỗi truy cập. Các tác vụ: các constructor: chuẩn, cấp phát mảng chứa tối đa MaxN phần tử, sao chép mảng đã có, Nhập, lấy phần tử thứ i, xuất, sắp xếp tăng, sắp xếp giảm, chèn trị x vào vị trí thứ i,...

! Tạo lớp mô tả và thao tác trên ma trận các số int có quản lý lỗi truy cập.

Chương 6- Exception-Gom Rác Slide 46/41

Page 47: LỖI LÚC THỰC THI và QUÁ TRÌNH GOM RÁC · thoại, có 2 tình huống: người dùng không nhập (user cancel), người dùng nhập chữ. " Có thể tổng quát hoá

VC &

BB

47  47  

Ôn thi GK ! Làm lại tất cả các bài thực hành có viết

thừa kế, abstract class, interface, static member, bẫy lỗi, overriding toString, equals, clone, interface Comparable.