Câu hỏi phỏng vấn Java
Câu hỏi

Có mấy loại exceptions trong Java? Sự khác biệt giữa chúng?

Câu trả lời

Trong Java, có hai loại chính của exceptions: checked exceptions và unchecked exceptions. Sự khác biệt giữa chúng chủ yếu dựa trên cách xử lý của trình biên dịch Java đối với chúng.

Checked Exceptions

  • Checked exceptions là những exceptions mà trình biên dịch yêu cầu phải xử lý hoặc khai báo ném ra từ phương thức thông qua từ khóa throws.
  • Chúng là những exceptions mà các lập trình viên dự đoán có thể xảy ra trong quá trình thực thi chương trình và cần phải được xử lý một cách cẩn thận để tránh chương trình bị đột ngột kết thúc.
  • Ví dụ về checked exceptions: IOException, SQLException.

Unchecked Exceptions

  • Unchecked exceptions bao gồm RuntimeException và các lỗi (Error).
  • Chúng không yêu cầu xử lý bắt buộc bởi trình biên dịch, tức là bạn không cần phải cung cấp một khối try-catch hoặc khai báo ném ra nó trong phương thức bằng từ khóa throws.
  • Unchecked exceptions thường là kết quả của các lỗi lập trình, như truy cập ngoài giới hạn của mảng (ArrayIndexOutOfBoundsException), hoặc cố gắng thực hiện một phép chia cho số không (ArithmeticException).
  • Ví dụ về unchecked exceptions: NullPointerException, IndexOutOfBoundsException.

Sự Khác Biệt Chính

  • Xử lý bắt buộc: Checked exceptions phải được xử lý hoặc khai báo ném ra, trong khi unchecked exceptions không yêu cầu điều này.
  • Thời điểm kiểm tra: Checked exceptions được kiểm tra tại thời điểm biên dịch (compile-time), còn unchecked exceptions được kiểm tra tại thời điểm chạy (runtime).
  • Mục đích: Checked exceptions thường liên quan đến các tình huống ngoài tầm kiểm soát của lập trình viên (ví dụ: lỗi đọc file), trong khi unchecked exceptions thường liên quan đến các lỗi lập trình có thể tránh được.

Kết Luận

Trong Java, việc phân biệt giữa checked và unchecked exceptions giúp lập trình viên xác định được các tình huống cần xử lý cẩn thận và các lỗi lập trình cần tránh. Checked exceptions giúp đảm bảo rằng các tình huống ngoại lệ được xử lý một cách an toàn, trong khi unchecked exceptions cho phép lập trình viên có sự linh hoạt hơn trong việc xử lý lỗi.

junior

junior

Gợi ý câu hỏi phỏng vấn

middle

Decalarations trong Java là gì?

middle

Sự khác biệt giữa HashMap, LinkedHashMapTreeMap trong Java là gì?

middle

Sự khác biệt giữa processesthreads trong Java là gì?

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào