Sự khác biệt giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java

Sự khác biệt chính - Đã kiểm tra vs Ngoại lệ không được kiểm tra trong Java
 

Một ngoại lệ là lỗi thời gian chạy. Có hai loại ngoại lệ được gọi là ngoại lệ được kiểm tra và không được kiểm tra. Khi xảy ra ngoại lệ được kiểm tra, ứng dụng Java được kết nối với tài nguyên bên ngoài như tệp, thiết bị hoặc cơ sở dữ liệu. Những ngoại lệ này được kiểm tra bởi trình biên dịch. Một số ví dụ về các ngoại lệ được kiểm tra là ngoại lệ IO và ngoại lệ FileNotFound. Khi xảy ra ngoại lệ không được kiểm tra, ứng dụng không được kết nối với bất kỳ tài nguyên bên ngoài nào. Những ngoại lệ này không được kiểm tra bởi trình biên dịch. Một số ví dụ về các ngoại lệ không được kiểm tra là Ngoại lệ số học và Ngoại lệ ArrayOutOfBound. Bài viết này thảo luận về sự khác biệt giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java. Các sự khác biệt chính giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java là một ngoại lệ được kiểm tra được kiểm tra bởi trình biên dịch trong khi ngoại lệ không được kiểm tra không được kiểm tra bởi trình biên dịch.

NỘI DUNG

1. Tổng quan và sự khác biệt chính
2. Ngoại lệ được kiểm tra trong Java là gì
3. Ngoại lệ không được kiểm tra trong Java là gì
4. Điểm tương đồng giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java
5. So sánh cạnh nhau - Đã kiểm tra so với ngoại lệ không được kiểm tra trong Java ở dạng bảng
6. Tóm tắt

Kiểm tra ngoại lệ trong Java là gì?

Khi xảy ra ngoại lệ được kiểm tra, ứng dụng Java được kết nối với tài nguyên bên ngoài. Tài nguyên này có thể là một thiết bị như máy in. Nó có thể là một tập tin hoặc cơ sở dữ liệu. Do đó, những ngoại lệ được kiểm tra bởi trình biên dịch. Ngoại lệ IO là một ngoại lệ được kiểm tra. Nó xảy ra do một lỗi trong thiết bị. Khi ứng dụng đang truy cập một tệp không tồn tại, thì nó sẽ gây ra ngoại lệ FileNotFound. Một ứng dụng có thể được kết nối với cơ sở dữ liệu như MySQL, Oracle, vv để lưu trữ dữ liệu. Nếu xảy ra lỗi liên quan đến cơ sở dữ liệu, đó sẽ là Ngoại lệ SQL. Đó là một số ví dụ về các trường hợp ngoại lệ được kiểm tra. Trong tất cả những điều này, ứng dụng được kết nối với một tài nguyên bên ngoài. Trong các trường hợp ngoại lệ được kiểm tra, bắt buộc phải xử lý ngoại lệ. Nếu nó không được xử lý, luồng chính xác của chương trình sẽ bị chấm dứt và tệp lớp sẽ không được tạo. Lỗi có thể được xử lý bằng cách sử dụng khối thử, bắt.

Hình 01: Xử lý ngoại lệ được kiểm tra

Theo như trên, FileReader đọc dữ liệu từ tệp. Tệp text1.txt không tồn tại ở vị trí đã chỉ định. Mã có thể đưa ra ngoại lệ được đặt bên trong khối thử. Thông điệp cần in nằm trong khối bắt. Vì không có tệp có tên text1.txt, điều này gây ra FileNotFoundException. Bằng cách sử dụng xử lý ngoại lệ, tin nhắn được in ra màn hình.

Các ngoại lệ không được kiểm tra trong Java là gì?

Các ngoại lệ không được kiểm tra không được kiểm tra bởi trình biên dịch. Không giống như trong các ngoại lệ được kiểm tra, với các ngoại lệ không được kiểm tra, ứng dụng Java không được kết nối với một tài nguyên bên ngoài như tệp, cơ sở dữ liệu hoặc thiết bị. Một số ngoại lệ không được kiểm tra phổ biến là Ngoại lệ Số học, ArrayOutOfBound và NullPulum.

int a = 10, b = 0;

int div = a / b;

System.out.println (div);

Điều này sẽ gây ra ngoại lệ số học vì lặn 'a' bằng không. Tham khảo mã dưới đây.

Hình 02: Xử lý ngoại lệ số học

Theo chương trình trên, biến a là một giá trị nguyên. Biến b là 0. Phép chia của hai số này là chia cho 0. Do đó, nó sẽ gây ra một ngoại lệ số học. Nó có thể được xử lý bằng cách sử dụng khối thử bắt. Các câu lệnh có thể gây ra ngoại lệ được đặt bên trong khối thử. Thông báo sẽ được hiển thị trong khối bắt.

Tham khảo đoạn dưới đây của mã.

int mảng1 [] = 1,2,3,4,5;

System.out.println (mảng1 [5]);

Điều này sẽ gây ra một ngoại lệ. Mảng1 là một mảng có 5 phần tử. Chỉ số bắt đầu của mảng bằng không. In 5thứ tự giá trị chỉ số gây ra một ngoại lệ vì nó nằm ngoài giới hạn. Chỉ số tối đa của mảng1 là 4.

Hình 03: Xử lý ngoại lệ ArrayOutOfBound

Theo chương trình trên, mảng1 có 5 phần tử. In phần tử bằng chỉ mục 6 sẽ gây ra ngoại lệ vì nó nằm ngoài giới hạn. Chỉ mục tối đa có thể được lưu trữ trong mảng1 là 5. Thông báo lỗi được in bằng cách thực hiện khối bắt.

Điểm giống nhau giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java

  • Cả Ngoại lệ được kiểm tra và không được kiểm tra trong Java là các loại ngoại lệ trong Java.

Sự khác biệt giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java là gì?

Đã kiểm tra so với Ngoại lệ không được kiểm tra trong Java

Một ngoại lệ được kiểm tra là lỗi thời gian chạy được trình biên dịch kiểm tra. Một ngoại lệ không được kiểm tra là lỗi thời gian chạy không được trình biên dịch kiểm tra.
 Tần suất xảy ra
Khi xảy ra ngoại lệ được kiểm tra, ứng dụng Java được kết nối với tài nguyên bên ngoài như tệp, thiết bị hoặc cơ sở dữ liệu. Khi xảy ra ngoại lệ không được kiểm tra, ứng dụng Java không được kết nối với tài nguyên bên ngoài.
Ví dụ
IOException, FileNotFoundException, SQLException là một số ví dụ về các ngoại lệ được kiểm tra. Ngoại lệ số học, ArrayOutOfBoundException, NullPulumException là một số ví dụ về các ngoại lệ không được kiểm tra.

Tóm tắt - Đã kiểm tra vs Ngoại lệ không được kiểm tra trong Java

Một ngoại lệ là một sự kiện làm gián đoạn việc thực hiện luồng chương trình. Có hai loại ngoại lệ. Chúng được gọi là ngoại lệ được kiểm tra và ngoại lệ không được kiểm tra. Bài viết này thảo luận về sự khác biệt giữa một ngoại lệ được kiểm tra và ngoại lệ không được kiểm tra. Sự khác biệt giữa ngoại lệ được kiểm tra và không được kiểm tra trong Java là ngoại lệ được kiểm tra được kiểm tra bởi trình biên dịch trong khi ngoại lệ không được kiểm tra không được kiểm tra bởi trình biên dịch. Vì các ngoại lệ ảnh hưởng đến luồng thực hiện chương trình chính xác, đó là một cách thực hành lập trình tốt để xử lý chúng.

Tài liệu tham khảo:

1. Điểm, Hướng dẫn. Các trường hợp ngoại lệ Java Java., Điểm hướng dẫn, ngày 8 tháng 1 năm 2018. Có sẵn tại đây
2. Công nghệ kỹ thuật. Đã kiểm tra so với Ngoại lệ không được kiểm tra | | Video Câu hỏi thường gặp về Java, Naresh i Technologies, ngày 31 tháng 12 năm 2016. Có sẵn tại đây