Key Difference - Ngoại lệ được Kiểm tra so với 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 một ngoại lệ được kiểm tra xảy ra, ứ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. Các 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 một ngoại lệ không được chọn xảy ra, ứ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. Các ngoại lệ này không được trình biên dịch kiểm tra. Một số ví dụ về các ngoại lệ không được chọn 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. Sự khác biệt chính giữa ngoại lệ đã kiểm tra và không kiểm tra trong Java là ngoại lệ đã kiểm tra được trình biên dịch kiểm tra trong khi trình biên dịch không kiểm tra ngoại lệ chưa kiểm tra.
Ngoại lệ được Kiểm tra trong Java là gì?
Khi một ngoại lệ đã chọn xảy ra, ứng dụng Java được kết nối với một 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 hoặc một 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 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, v.v. để lưu trữ dữ liệu. Nếu một lỗi xảy ra liên quan đến cơ sở dữ liệu, nó sẽ là SQL Exception. Đó 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 ngoại lệ đã kiểm tra, bắt buộc phải xử lý ngoại lệ. Nếu nó không được xử lý, luồng đúng 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 try, catch.
Hình 01: Xử lý Ngoại lệ đã Kiểm tra
Theo phần 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ể cung cấp ngoại lệ được đặt bên trong khối thử. Thông báo cần in nằm bên trong khối bắt. Vì không có tệp nào được gọi là text1.txt, điều này gây ra một FileNotFoundException. Bằng cách sử dụng xử lý ngoại lệ, thông báo sẽ được in ra màn hình.
Ngoại lệ Không được Kiểm tra trong Java là gì?
Các ngoại lệ không được chọn sẽ không được trình biên dịch kiểm tra. Không giống như các trường hợp ngoại lệ được kiểm tra, với các trường hợp ngoại lệ không được chọn, ứng dụng Java không được kết nối với 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ệ phổ biến không được kiểm tra là Arithmetic, ArrayOutOfBound và NullPointer Exceptions.
int a=10, b=0;
int div=a / b;
System.out.println (div);
Điều này sẽ gây ra một ngoại lệ số học vì lặn ‘a’ bằng không. Tham khảo mã bên dưới.
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à phép chia cho không. 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 try-catch. Các câu lệnh có thể gây ra ngoại lệ được đặt bên trong khối try. Thông báo được hiển thị nằm trong khối bắt.
Tham khảo đoạn mã bên dưới.
int array1 ={1, 2, 3, 4, 5};
System.out.println (array1 [5]);
Điều này sẽ gây ra một ngoại lệ. Mảng 1 là một mảng có 5 phần tử. Chỉ số bắt đầu của mảng bằng không. Việc in giá trị chỉ mục 5thgây ra một ngoại lệ vì nó không bị ràng buộc. Chỉ số tối đa của mảng 1 là 4.
Hình 03: Xử lý ngoại lệ ArrayOutOfBound
Theo chương trình trên, mảng 1 có 5 phần tử. Việc in phần tử có chỉ mục 6 sẽ gây ra một ngoại lệ vì nó không bị ràng buộc. Chỉ số tối đa có thể được lưu trữ trong array1 là 5. Thông báo lỗi in ra khi thực hiện khối bắt.
Sự giống nhau giữa Ngoại lệ được Kiểm tra và Không được Kiểm tra trong Java là gì
Cả Ngoại lệ được Kiểm tra và Không được Kiểm tra trong Java đều là các kiểu 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 |
|
Ngoại lệ đã 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ệ chưa được kiểm tra là lỗi thời gian chạy không được trình biên dịch kiểm tra. |
Xuất hiện | |
Khi một ngoại lệ đã chọn xảy ra, ứng dụng Java được kết nối với một tài nguyên bên ngoài như tệp, thiết bị hoặc cơ sở dữ liệu. | Khi một ngoại lệ không được chọn xảy ra, ứ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, NullPointerException là một số ví dụ về các ngoại lệ không được kiểm tra. |
Tóm tắt - Ngoại lệ được kiểm tra so với Không kiểm tra trong Java
Ngoại lệ là một sự kiện làm gián đoạn việc thực hiện dòng chương trình. Có hai loại ngoại lệ. Chúng được gọi là ngoại lệ đã 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 ngoại lệ đã kiểm tra và ngoại lệ không được kiểm tra. Sự khác biệt giữa ngoại lệ đã kiểm tra và ngoại lệ không được kiểm tra trong Java là ngoại lệ đã kiểm tra được trình biên dịch kiểm tra trong khi ngoại lệ không được kiểm tra không được trình biên dịch kiểm tra. Vì các ngoại lệ ảnh hưởng đến luồng thực thi chương trình chính xác, nên xử lý chúng là một phương pháp lập trình tốt.