wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

LẬP TRÌNH HĐT - BÀI 5

Total questions: 29

Worksheet time: 47mins

Name
Class
Date
1.

Lớp cơ sở của tất cả các ngoại lệ trong java là gì?

a)

java.lang.error

b)

java.io.ioexception

c)

java.lang.Throwable

d)

java.lang.runtimeexception

2.

Điều gì sẽ xảy ra trong quá trình chạy (runtime) nếu một ngoại lệ không được bắt và xử lý trong khối try-catch?

a)

Chương trình sẽ bỏ qua lỗi

b)

Chương trình sẽ kết thúc một cách đột ngột

c)

Chương trình sẽ tự động sửa lỗi

d)

Chương trình tiếp tục chạy bình thường

3.

Từ khóa nào được sử dụng để tạo một ngoại lệ tùy chỉnh trong java?

a)

custom

b)

error

c)

throw

d)

create

4.

Cú pháp để ném một ngoại lệ trong java là gì?

a)

throw new exception();

b)

catch new exception();

c)

finally new exception();

d)

try new exception();

5.

Khi một ngoại lệ xảy ra, chương trình sẽ làm gì nếu không có khối catch nào phù hợp?

a)

Tiếp tục thực thi

b)

Kết thúc chương trình

c)

Gọi phương thức finally

d)

Bỏ qua lỗi

6.

Khi nào các lệnh sau finally được gọi trong khối try-catch-finally?

a)

Chỉ khi không có ngoại lệ xảy ra

b)

Không bao giờ được gọi

c)

Luôn luôn, bất kể có ngoại lệ hay không

d)

Chỉ khi có ngoại lệ xảy ra

7-10.

Xét chương trình java KHÔNG xử lý ngoại lệ như sau:


Trong các nhận xét sau về chương trình, nhận xét nào đúng, nhận xét nào sai?

7.

Chương trình sẽ dừng đột ngột mà không có cách xử lý.

a)

ĐÚNG

b)

SAI

8.

Chương trình khi chạy sẽ gặp ngoại lệ ArithmeticException: / by zezo và dừng đột

a)

ĐÚNG

b)

SAI

9.

Chương trình chạy bình thường, và in ra màn hình kết quả của phép chia

a)

ĐÚNG

b)

SAI

10.

Chương trình sẽ ném ra đối tượng ngoại lệ thuộc lớp ArrayIndexOutOfBoundException, dừng thực thi và báo lỗi

a)

ĐÚNG

b)

SAI

11-14.

Các phát biểu sau đúng hay sai?

11.

Khi dùng lệnh try-catch-finally, khối try phải đi kèm với ít nhất một khối catch, hoặc một khối finally. Khối try không thể đứng độc lập một mình

a)

ĐÚNG

b)

SAI

12.

Khi dùng lệnh try-catch, có thể khai báo nhiều khối catch, nhưng chỉ một khối try

a)

ĐÚNG

b)

SAI

13.

Lệnh try – catch – finally không phải là lệnh bắt và xử lý ngoại lệ trong Java. Để bắt và xử lý ngoại lệ ta sử dụng từ khóa processException.

a)

ĐÚNG

b)

SAI

14.

Khi dùng lệnh try-catch-finally, bắt buộc phải khai báo đầy đủ cả ba khối try, catch, finally thì chương trình mới không báo lỗi

a)

ĐÚNG

b)

SAI

15.

Đoạn mã sau khi chạy cho ra kết quả gì?

a)

Xuất ra lỗi "Division by zero".

b)

Chương trình sẽ không làm gì cả.

c)

Xuất ra một số khác.

d)

Chương trình sẽ dừng lại với lỗi.

16.

Đoạn mã sau khi chạy cho ra kết quả gì?

a)

Xuất ra lỗi "Index out of bounds".

b)

Xuất ra giá trị 3

c)

Chương trình có lỗi.

d)

Xuất ra giá trị 2.

17.

Đoạn mã sau đây khi chạy cho ra kết quả gì?

a)

Xuất ra "Number format exception".

b)

Xuất ra "10".

c)

Không có gì xảy ra.

d)

Chương trình có lỗi.

18.

Điều gì sẽ xảy ra khi đoạn mã sau được thực thi?

a)

Xuất ra "Number format exception"

b)

Chương trình có lỗi.

c)

Xuất ra "123"

d)

Không có gì xảy ra.

19-22.

Các phát biểu sau đúng hay sai?

19.

Nếu một phương thức ném ra nhiều loại ngoại lệ, có thể xử lý chúng bằng cách: (1) Dùng nhiều khối catch để bắt từng loại ngoại lệ riêng biệt; hoặc (2) Dùng một khối catch chung để xử lý tất cả các loại ngoại lệ cùng lúc.

a)

ĐÚNG

b)

SAI

20.

Lớp Error trong Java thường dùng để đại diện cho lỗi không đáng kể, và có thể xử lý trong chương trình.

a)

ĐÚNG

b)

SAI

21.

Dùng nhiều catch để xử lý từng lỗi riêng biệt làm làm mã nguồn dễ đọc và dễ debug hơn so với việc dùng Exception chung để bắt mọi ngoại lệ. Dùng Exception chung để bắt mọi ngoại lệ không khuyến khích vì không rõ lỗi gì đã xảy ra.

a)

ĐÚNG

b)

SAI

22.

Mệnh đề catch (ArrayIndexOutOfBoundsException e) dùng để bắt lỗi truy cập phần tử ngoài mảng. Trong khi catch (ArithmeticException e) dùng để bắt lỗi chia cho 0, và catch (Exception e): Bắt tất cả các lỗi còn lại (nếu có)

a)

ĐÚNG

b)

SAI

23.

Cho chương trình Java như sau: Chương trình khi chạy cho ra kết quả gì?

a)

Chương trình không ném ra ngoại lệ nào, chạy và không in ra kết quả gì.

b)

In ra màn hình 2 dòng chữ: "Ngoại lệ xảy ra: Lỗi khi tính toán" và "Nguyên nhân gốc: java.lang.ArithmeticException: / by zero"

c)

Chương trình bị lỗi cú pháp

d)

Chương trình không bị lỗi cú pháp, nhưng khi chạy ném ra ngoại lệ RuntimeException và ngoại lệ này không được xử lý tro

24-27.

Các phát biểu phân tích cấu trúc try-catch-finally sau đây đúng hay sai?

24.

Nếu khối finally không có trong cấu trúc try-catch, chương trình vẫn sẽ chạy mà không có vấn đề gì

a)

ĐÚNG

b)

SAI

25.

Nếu khối try không có bắt cứ khối catch, hoặc khối finally đi cùng, chương trình sẽ không biên dịch được và báo lỗi cú pháp

a)

ĐÚNG

b)

SAI

26.

Khi một ngoại lệ xảy ra trong khối try nhưng không có khối catch xử lý tương ứng, chương trình sẽ kết thúc đột ngột với một thông báo lỗi

a)

ĐÚNG

b)

SAI

27.

Khi một ngoại lệ xảy ra trong khối try nhưng không có khối catch tương ứng, ngoại lệ sẽ được tự động sửa, và chương trình tiếp tục chạy.

a)

ĐÚNG

b)

SAI

28.

Ngoại lệ trong java là gì?

a)

Một lỗi cú pháp

b)

Một lỗi logic

c)

Một sự kiện bất thường gây gián đoạn luồng thực thi bình thường của chương trình

d)

Một cảnh báo không quan trọng

29.

Từ khóa nào được sử dụng để bắt ngoại lệ trong câu lệnh try ... catch ... finally ... của java?

a)

try

b)

throw

c)

final

d)

catch

30.

Từ khóa nào được dùng chỉ ra rằng một phương thức có thể ném ra một hoặc nhiều loại ngoại lệ?

a)

finally

b)

catch

c)

throws

d)

try

31.

Ngoại lệ nào xảy ra khi một đối tượng bị tham chiếu nhưng không tồn tại?

a)

NullPointerException

b)

ArrayIndexOutofBoundsException

c)

ClassNotFoundException

d)

IOException

32.

Exception và RuntimeException có mối quan hệ như thế nào?

a)

RuntimeException là lớp cơ sở của Exception

b)

Exception và RuntimeException không có mối quan hệ

c)

RuntimeException là lớp con của Exception

d)

Exception là lớp con của RuntimeException

33-36.

Xét chương trình java CÓ xử lý ngoại lệ như sau:

Trong các phát biểu sau đây về chương trình này, phát biểu nào đúng, phát biểu nào sai?

33.

Chương trình sử dụng try-catch để bắt lỗi chia cho 0. Do đó, khi gặp lỗi này, chương trình hiển thị thông báo và tiếp tục chạy.

a)

ĐÚNG

b)

SAI

34.

Chương trình không ném ra đối tượng ngoại lệ thuộc lớp ArithmeticException nên việc bắt lỗi tương ứng với kiểu ngoại lệ này là sai. Do vậy, khi chạy chương trình sẽ báo lỗi và dừng thực thi.

a)

ĐÚNG

b)

SAI

35.

Chương trình khi chạy sẽ in ra hai dòng thông báo: “Lỗi: không thể chia cho 0” và “Chương trình tiếp tục chạy …”

a)

ĐÚNG

b)

SAI

36.

Chương trình khi chạy sẽ ném ra ngoại lệ thuộc lớp MathemeticException

a)

ĐÚNG

b)

SAI

37.

Điều gì sẽ xảy ra khi chạy đoạn mã sau?

a)

Xuất ra "10".

b)

Chương trình ném ra ngoại lệ ArithmeticException

c)

Xuất ra lỗi "Array index out of bound".

d)

Không có lỗi nào xảy ra.

38.

Đoạn mã sau đây khi chạy cho ra kết quả gì?

a)

Xuất ra "Chạy thành công"

b)

Xuất ra "Array index out of bounds"

c)

Chương trình có lỗi.

d)

Xuất ra "Java"

39.

Điều gì sẽ xảy ra khi đoạn mã sau được thực thi?

a)

Xuất ra giá trị 50

b)

Chương trình có lỗi

c)

Chạy nhưng không xuất ra kết quả gì

d)

Xuất ra "Array index out of bounds".

40-43.

Điền thông tin thích hợp vào các chỗ trống (______) trong phát biểu sau đây:
Trong Java, ngoại lệ được chia thành hai loại chính là ....(1) ......(hay còn gọi là Compile-time Exception), và .....(2)....... (hay còn gọi là Runtime Exception). Checked exception được kiểm tra tại thời điểm ...........(3).........., trong khi unchecked exception được kiểm tra khi ........(4)........

Biết các thông tin có thể điền bao gồm: checked exception ; unchecked exception ; compile (biên dịch chương trình) ; run (chương trình chạy) ; review code (rà soát code)

40.

Ô trống (1):

(a)  

41.

Ô trống (2):

(a)  

42.

Ô trống (3):

(a)  

43.

Ô trống (4):

(a)  

44.

Phương thức nào của lớp Throwable được sử dụng để lấy thông diệp lỗi của ngoại lệ?

a)

getException()

b)

getError()

c)

getMessage()

d)

getDescription()

45-48.

Cho chương trình Java với mã như sau:

Trong các phát biểu sau về chương trình này, phát biểu nào đúng, phát biểu nào sai?

45.

Chương trình này gặp lỗi, vì Java không cho phép nhiều khối catch đi kèm với một khối try

a)

ĐÚNG

b)

SAI

46.

Chương trình này xử lý nhiều ngoại lệ bằng cách dùng nhiều khối catch

a)

ĐÚNG

b)

SAI

47.

Mệnh đề catch cuối cùng bắt tất cả các lỗi còn lại (nếu có), nhưng không cần thiết phải có.

a)

ĐÚNG

b)

SAI

48.

Khối try của chương trình này chứa mã có thể ném ra 2 ngoại lệ thuộc kiểu (1) lỗi truy cập phần tử ngoài mảng, (2) lỗi chia cho 0.

a)

ĐÚNG

b)

SAI

49-52.

Điền thông tin thích hợp vào các chỗ trống (____) trong phát biểu sau đây:
IOException thuộc là ví dụ về .......(1)......... Checked Exception yêu cầu phải sử dụng .......(2)..... để bắt và xử lý trực tiếp ngoại lệ ngay trong phương thức, hoặc sử dụng ........(3)..... để đẩy việc xử lý ngoại lệ cho nơi gọi phương thức. Nếu không xử lý Checked Exception, chương trình sẽ .......(4)......., còn nếu xử lý Unchecked Exception, chương trình vẫn biên dịch thành công nhưng có thể lỗi khi chạy.

Biết các thông tin có thể điền bao gồm: checked exception ; unchecked exception ; try-catch ; throws ; báo lỗi cú pháp ; biên dịch thành công

49.

Ô trống (1)

(a)  

50.

Ô trống (2)

(a)  

51.

Ô trống (3)

(a)  

52.

Ô trống (4)

(a)  

53.

Đoạn mã sau đây khi chạy cho ra kết quả gì?

a)

Xuất ra "Java".

b)

Chương trình có lỗi.

c)

Không có gì xảy ra.

d)

Xuất ra "Array index out of bounds".