Chương 6: Xử lý ngoại lệ (Exception)

Câu 1: Sửa chương trình sau để compile success (chọn 2 đáp án)

A. Dòng thứ nhất xóa implements AutoCloseable
B. Dòng thứ 2 trong method main thêm throw Exception
C. Dòng thứ 7 method close xóa throws Exception
D. Dòng thứ 5 thêm catch(Exception e){}
E. Dòng thứ 5 thêm finally{}
Câu 2: Class implements những interface nào sau đây thì có thể sử dụng trong try-with-resources(chọn 2 đáp án)
A. Closeable
B. Exception
C. AutoCloseable
D. Serializable
E. RuntimeException
Câu 3: Câu nào sau đây là đúng (chọn 2 đáp án)
A. Code bình thường thì có thể  dùng với try-catch
B. Code bình thường thì có thể dùng với try-finally
C. Code bình thường thì có thế dùng 1 trong try, catch, finally
D. try-with-resources có thẻ dùng với try-catch
E. try-with-resources có thể dùng với try-finally
F. try-with-resources có thể dùng với 1 trong try, catch, finally
Câu 4: Compile và chạy chương trình sau kết quả là (chọn 1 đáp án)

A. A D B C
B. A E B C
C. A D E B C
D. A E D B C
E. Sau khi in ra A D sẽ báo runtime exception
F. Sau khi in ra A  sẽ báo runtime exception
Câu 5: Chọn class là runtime Exception (chọn 3 đáp án)
A. SQLException
B DateTimeException
C. MissingResourceException
D. IOException
E. llegalStateException
F. Exception
Câu 6: Chọn đáp án đúng để compile success chương trình sau (chọn 3 đáp án)

A. Điền e = new Exception() vào ①
B. Điền e = new RuntimeException() vào ①
C. Điền e = new Foo() vào ①
D. Điền e = new Bar() vào ①
E. code hiện tại ko điền gì vào ① vẫn compile success
Câu 7: Chọn đáp án đúng để compile success chương trình sau (chọn 1 đáp án)

A. Điền e = new Exception() vào ①
B. Điền e = new RuntimeException() vào ①
C. Điền e = new Foo() vào ①
D. Điền e = new Bar() vào ①
E. code hiện tại ko điền gì vào ① vẫn compile success
Câu 8: Câu nào sau đây nói đúng về khi tạo class Exception riêng (chọn 1 đáp án)
A. Nhất định phải có construtor ko tham số và construtor có tham số là kiểu String
B. Chỉ có thể tạo class của uncheck exception
C. Chỉ có thể tạo class của checked Exception
D. Nhất định phải override toString(), equals(), hashCode()
E. Phải implement Serializable interface
F. Các đáp án trên đều sai
Câu 9: Câu lệnh để chạy chương trình sau với  AsertionError là (chọn 2 đáp án)

A. java Test
B. java -da Test
C. java -ea Test
D. java -ea -da Test
E. java -da -ea:Test Test
F. java -ea -da: Test Test
Câu 10: Điền code vào chỗ trống  ① để tạo ra AssertionError khi chạy lệnh java -ea Test(chọn 2 đáp án)

A. assert (val < 0:”A”);
B. assert (val < 0):”A”;
C. assert val < 0:(“A”);
D. assert val < 0,”A”;
E. assert val < 0:”A”;
Câu 11: Kết quả khi chạy lệnh java Test a là gì (chọn 1 đáp án)

A. a
B. Test a
C. AssertionError
D. ArrayIndexOutOfBoundsException
E. compile error
 

  • Method của class cha ko throw exception => method của class con ko throw hoặc có thể throw runtime exception
  • Class nào được implement Interface AutoCloseable thì sẽ tự động gọi method close sau khi kết thúc code trong {}

Ví dụ:

  • Có thể xử dụng try – with- resoruce với các class java.io.Closeable và java.lang.AutoCloseable
  • Catch nhiều exception trong cùng 1 câu lệnh thì biến lưu exception sẽ tự động thành kiểu final
  • Assert expression: output hoặc Assert (expresssion):output
  • Để chạy assert cần run với time số như sau: java -ea
  • e.getSuppressed() sẽ lấy ra những exception bị bỏ qua khi dùng try with resource. (exception sinh ra từ method close() khi dùng try with resource sẽ bị bỏ qua nếu bên trong try{} có exception)
  • AutoCloseable của java.lang => throw Exception, còn Closeable của java.io  => throw IOExcetion
  • throw nếu trong method, throws nếu ngoài method
  • getCause khi có throw 2 lần exception.

 

  • multi exception trong 1 catch thì ko dc dùng các exception có quan hệ kế thừa.

Đáp án:

  1. B D
  2. A C
  3. A B
  4. D
  5. B C E
  6. C D E
  7. E
  8. F
  9. C E
  10. B E
  11. D

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *