Logo vi.removalsclassifieds.com

Sự khác biệt giữa Ngoại lệ được Kiểm tra và Không được Kiểm tra (Với Bảng)

Mục lục:

Anonim

Kiểm tra các ngoại lệ là một trong những điều quan trọng nhất trong lập trình và kiểm thử phần mềm. Checked And Unchecked Exception dừng chương trình chạy khi nó đang cố gắng bắt lỗi hoặc lỗi. Hơn nữa, lập trình viên có trách nhiệm đảm bảo những lỗi này không bao giờ xảy ra. Cả Ngoại lệ được Kiểm tra và Không được Kiểm tra đều đặc biệt giống nhau, nhưng chúng khác biệt với nhau.

Đã kiểm tra so với 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 là các ngoại lệ được Kiểm tra là những ngoại lệ phải được phát hiện và xử lý bởi câu lệnh checks () hoặc chúng sẽ khiến chương trình kết thúc và in dấu vết ngăn xếp, trong khi đó, các ngoại lệ Không được kiểm tra, ngược lại, nên không cần phải bắt hoặc xử lý gì cả, vì lập trình viên có trách nhiệm đảm bảo những lỗi này không bao giờ xảy ra.

Ngoại lệ được kiểm tra là một loại ngoại lệ cụ thể dừng chương trình chạy cho đến khi nó bị chặn bởi một khối bắt hoặc được chỉ định trong mệnh đề ném của một phương thức, hơn nữa, ngoại lệ đã kiểm tra được bắt và xử lý bởi câu lệnh checks () hoặc chúng sẽ khiến một chương trình kết thúc và in ra một dấu vết ngăn xếp.

Nếu mã gây ra ngoại lệ không được kiểm tra đúng cách, nó có thể gây ra các lỗi ngoại lệ lạ Chưa được kiểm tra có thể khó tìm và sửa chữa. Hơn nữa, không cần phải bắt hoặc xử lý các trường hợp ngoại lệ Unchecked vì lập trình viên có trách nhiệm đảm bảo những lỗi này không bao giờ xảy ra.

Bảng so sánh giữa Kiểm tra và Bỏ chọn Ngoại lệ

Các thông số so sánh

Ngoại lệ được Kiểm tra

Ngoại lệ bỏ chọn

Sự định nghĩa

Các ngoại lệ được kiểm tra là những ngoại lệ phải được phát hiện và xử lý bởi các câu lệnh kiểm tra (). Các trường hợp ngoại lệ không được chọn sẽ không cần phải bắt hay xử lý gì cả.
Tần suất xảy ra

Các ngoại lệ đã kiểm tra phải được xử lý bởi một khối bắt trong thời gian biên dịch. Các ngoại lệ chưa được kiểm tra còn được gọi là ngoại lệ thời gian chạy là Ngoại lệ không được kiểm tra.
Xử lý lỗi

Checked Exception dừng chương trình chạy cho đến khi cố gắng bắt một lỗi hoặc lỗi. Lập trình viên có trách nhiệm đảm bảo những lỗi này không bao giờ xảy ra.
Các lớp ngoại lệ

Nó có các lớp học đặc biệt. Nó không có bất kỳ lớp đặc biệt nào hoặc nó không phải là một phần chính của các lớp đặc biệt.
Thí dụ

OutOfMemoryError, NullPointerException và StackOverflowError. IndexOutOfBoundsException

Ngoại lệ được Kiểm tra là gì?

Các ngoại lệ được kiểm tra có liên quan mật thiết đến việc kiểm thử phần mềm, hơn nữa, một ngoại lệ được kiểm tra là một ngoại lệ phải được xử lý, nếu không chương trình sẽ kết thúc. Điều này có nghĩa là mã theo sau một câu lệnh ném sẽ không thực thi nếu không có khối bắt nào xử lý ngoại lệ. Các ngoại lệ được kiểm tra phục vụ hai mục đích đó là chúng ngăn chương trình tiếp tục khi xảy ra lỗi và chúng có thể cung cấp thông tin gỡ lỗi về nơi tìm lỗi đó.

Trình biên dịch không buộc người lập trình phải xử lý ngoại lệ, nhưng bất kỳ lớp nào mở rộng lớp khác cũng phải mở rộng hoặc triển khai tất cả các ngoại lệ đã kiểm tra của nó. Nếu không, quá trình biên dịch của lớp mở rộng không thành công với lỗi thời gian biên dịch cho biết rằng nó phải xử lý tất cả các ngoại lệ được kiểm tra bởi lớp cha của nó. Điều này ngăn không cho kế thừa được sử dụng để phá vỡ các chế độ lỗi cài sẵn.

Khi một ngoại lệ được ném ra, nó sẽ được chuyển tới trình gỡ lỗi trong Eclipse hoặc hệ điều hành, sau đó sẽ kết thúc chương trình một cách bình thường. Hệ điều hành in ra một dấu vết ngăn xếp. Dấu vết ngăn xếp cung cấp thông tin cho mỗi lần gọi phương thức theo thứ tự chúng được gọi. Điều này cho phép lập trình viên tìm thấy vị trí trong mã hoặc vị trí nào trong luồng thực thi mã của họ đã xảy ra ngoại lệ.

Ngoại lệ không được kiểm tra là gì?

Các ngoại lệ không được kiểm tra tồn tại để cho phép các lập trình viên lập trình linh hoạt và hiệu quả hơn. Java đã được thiết kế để cho phép các lập trình viên tạo ra các ứng dụng sử dụng tài nguyên một cách hiệu quả và tránh sự xuất hiện của deadlock. Các ngoại lệ không được kiểm tra có thể được loại bỏ bằng cách thực hành thiết kế và mã hóa cẩn thận. Tuy nhiên, tất cả các ngoại lệ khác ngoại trừ NullPointerException xảy ra trong mã Java được coi là không được chọn.

Các trường hợp ngoại lệ không được kiểm tra sẽ không cần phải bắt hoặc xử lý gì cả. Hơn nữa, chúng là một cách để mã cấp cao hơn thông báo cho mã cấp thấp hơn rằng nó sẽ làm điều gì đó không an toàn cho chuỗi, nhưng điều đó sẽ không gây ra sự cố nếu chỉ có một chuỗi chạy tại bất kỳ thời điểm nào, chẳng hạn như như cập nhật một số dữ liệu hoặc hiển thị một số đồ họa trên màn hình.

Sử dụng các ngoại lệ không được kiểm tra là một đề xuất rủi ro. Nếu một lớp sẽ ném ra một ngoại lệ không được kiểm tra, thì ai sử dụng lớp đó cần phải biết về nó và có một số phương pháp nghiêm ngặt để xử lý nó. Ví dụ: một lập trình viên có thể muốn đọc một số dữ liệu từ một tệp và sau đó ghi lại nó, và loại chức năng này không cần bất kỳ sự đồng bộ hóa nào. Hoàn toàn có thể chấp nhận được khi một ứng dụng đọc cùng một dữ liệu hai lần trên hai luồng khác nhau mà không có bất kỳ ảnh hưởng tiêu cực nào đến hiệu suất hoặc độ ổn định của hệ thống.

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

Sự kết luận

Một ngoại lệ được kiểm tra là một ngoại lệ phải được xử lý, nếu không chương trình sẽ kết thúc. Tuy nhiên, các ngoại lệ Bỏ chọn là những ngoại lệ thực thi các chức năng dừng cho tất cả các luồng. Một trường hợp ngoại lệ được kiểm tra và không được kiểm tra là một dấu hiệu của sự thất bại trong mã. Điều này xảy ra khi mã đang cố gắng thực hiện điều gì đó không mong muốn. Nếu mã gây ra ngoại lệ không được kiểm tra đúng cách, nó có thể gây ra các lỗi lạ khó tìm và khó sửa. Trong một số trường hợp, lập trình viên thậm chí có thể phải viết lại toàn bộ chương trình từ đầu. Hơn nữa, các ngoại lệ được kiểm tra và không được kiểm tra có liên quan chặt chẽ đến việc kiểm thử phần mềm.

Người giới thiệu

Sự khác biệt giữa Ngoại lệ được Kiểm tra và Không được Kiểm tra (Với Bảng)