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 ngăn chương trình chạy khi nó đang cố bắt lỗi hoặc lỗi.
Hơn nữa, trách nhiệm của lập trình viên là đả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 nhau.
Các nội dung chính
- Trình biên dịch kiểm tra các ngoại lệ đã kiểm tra trong thời gian biên dịch và cần được lập trình viên xử lý bằng cách sử dụng từ khóa try-catch hoặc ném từ khóa, trong khi các ngoại lệ không được kiểm tra xảy ra trong thời gian chạy và không cần xử lý.
- Các ngoại lệ đã kiểm tra được sử dụng cho các lỗi có thể khôi phục, chẳng hạn như không tìm thấy tệp, trong khi các ngoại lệ không được kiểm tra được sử dụng cho các lỗi không thể khôi phục, chẳng hạn như ngoại lệ hết bộ nhớ hoặc con trỏ rỗng.
- Các ngoại lệ được kiểm tra là một phần của chữ ký của phương thức, trong khi các ngoại lệ không được kiểm tra thì không.
Đã 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ằng câu lệnh check () nếu không chúng sẽ khiến chương trình chấm dứt và in dấu vết ngăn xếp, trong khi đó, các ngoại lệ không được kiểm tra, mặt khác, sẽ hoàn toàn không cần phải bị bắt hay xử lý vì trách nhiệm của người lập trình là đảm bảo những lỗi này không bao giờ xảy ra.
Ngoại lệ đã kiểm tra là một loại ngoại lệ cụ thể ngăn chương trình chạy cho đến khi nó bị bắt 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 bị bắt và xử lý bởi câu lệnh kiểm tra (), 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.
Nếu mã gây ra ngoại lệ không được kiểm tra đúng cách, thì mã đó có thể gây ra các lỗi đặc biệt lạ Không được kiểm tra có thể khó tìm và sửa.
Hơn nữa, các ngoại lệ không được kiểm tra hoàn toàn không cần phải bị bắt hoặc xử lý, vì trách nhiệm của lập trình viên là đảm bảo những lỗi này không bao giờ xảy ra.
Bảng so sánh
Các thông số so sánh | Đã kiểm tra ngoại lệ | Ngoại lệ bỏ chọn |
---|---|---|
Định nghĩa | Các ngoại lệ được kiểm tra là những ngoại lệ phải được bắt và xử lý bằng các câu lệnh kiểm tra (). | Các ngoại lệ không được kiểm tra không cần phải bị bắt hoặc xử lý. |
Xảy ra | Một khối bắt phải xử lý các ngoại lệ được kiểm tra trong thời gian biên dịch. | Uncaught Exceptions, 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 | Ngoại lệ được kiểm tra sẽ ngăn chương trình chạy cho đến khi chương trình đang cố 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 đặ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. |
Ví dụ | OutOfMemoryError, NullPulumException và StackOverflowError. | IndexOutOfBoundsNgoại lệ |
Kiểm tra ngoại lệ là gì?
Các ngoại lệ được kiểm tra có liên quan chặt chẽ đến 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ẽ chấm dứt.
Điều này có nghĩa là mã sau 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: chúng ngăn chương trình tiếp tục khi xảy ra lỗi và cung cấp thông tin gỡ lỗi về nơi tìm thấy lỗi đó.
Trình biên dịch không buộc lập trình viên 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 nên 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, việc biên dịch lớp mở rộng sẽ không thành công kèm theo 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 siêu lớp của nó. Điều này ngăn chặn việc sử dụng tính kế thừa để phá vỡ các chế độ lỗi tích hợp.
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 tới hệ điều hành, sau đó hệ điều hành sẽ kết thúc chương trình một cách bình thường. Hệ điều hành in ra 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ệnh 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í xảy ra ngoại lệ trong luồng thực thi mã của họ.
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 các ứng dụng sử dụng tài nguyên hiệu quả và tránh sự xuất hiện của bế tắc.
Các ngoại lệ không được kiểm tra có thể được loại bỏ bằng cách thiết kế cẩn thận và thực hành viết mã. Tuy nhiên, tất cả các ngoại lệ ngoại trừ NullPulumException trong mã Java được coi là không được kiểm tra.
Các ngoại lệ không được kiểm tra không cần phải bị bắt hoặc xử lý.
Hơn nữa, chúng là một cách để mã cấp cao hơn nói với mã cấp thấp hơn rằng nó sẽ làm điều gì đó không an toàn cho luồng nhưng điều đó sẽ không gây ra sự cố nếu chỉ có một luồng chạy tại bất kỳ thời điểm nào, chẳng hạn 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ẽ đưa ra một ngoại lệ không được kiểm tra, thì bất kỳ ai sử dụng lớp đó cần phải biết về nó và có sẵn 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 dữ liệu đó và loại chức năng này không cần bất kỳ sự đồng bộ hóa nào.
Việc 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 năng hoặc độ ổn định của hệ thống là hoàn toàn có thể chấp nhận được.
Sự khác biệt chính giữa các ngoại lệ được kiểm tra và không được kiểm tra
- Ngoại lệ được kiểm tra là những ngoại lệ phải được bắt và xử lý bằng câu lệnh kiểm tra (), trong khi đó, Ngoại lệ không được kiểm tra hoàn toàn không cần phải bị bắt hoặc xử lý.
- Ngoại lệ được kiểm tra phải được xử lý bằng khối catch trong thời gian biên dịch, trong khi 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.
- Ngoại lệ được kiểm tra ngăn chương trình chạy cho đến khi nó đang cố bắt một lỗi hoặc lỗi, trong khi đó, Ngoại lệ không được kiểm tra là trách nhiệm của lập trình viên để đảm bảo những lỗi này không bao giờ xảy ra.
- Ngoại lệ được kiểm tra không có các lớp ngoại lệ, trong khi đó, Ngoại lệ không được kiểm tra không có bất kỳ lớp ngoại lệ nào hoặc nó không phải là một phần chính của các lớp ngoại lệ.
- Ví dụ về Ngoại lệ được kiểm tra sẽ là OutOfMemoryError, NullPulumException và StackOverflowError, trong khi ví dụ về Ngoại lệ không được kiểm tra sẽ là IndexOutOfBoundsException.
Nội dung bao quát toàn diện về các khái niệm ngoại lệ được kiểm tra và không được kiểm tra, cùng với các ứng dụng của chúng, mang lại sự hiểu biết toàn diện. Bài viết đề cập một cách hiệu quả đến các khía cạnh cơ bản của những ngoại lệ này trong lập trình.
Giải thích của bài viết về các trường hợp ngoại lệ đã kiểm tra là các lỗi có thể phục hồi, chẳng hạn như không tìm thấy tệp và các trường hợp ngoại lệ không được kiểm tra là các lỗi không thể khôi phục, như hết bộ nhớ, có liên quan và nhấn mạnh tầm quan trọng của việc phân biệt giữa hai trường hợp này.
Bài viết cung cấp thông tin chuyên sâu về các ngoại lệ được kiểm tra và không được kiểm tra, làm rõ chúng khác nhau như thế nào và chúng phục vụ chức năng gì. Nó cũng giải thích cách trình biên dịch xử lý các ngoại lệ được kiểm tra trong thời gian biên dịch và trách nhiệm của người lập trình trong việc xử lý các ngoại lệ không được kiểm tra.
Cuộc thảo luận về các trường hợp ngoại lệ đã kiểm tra yêu cầu khối thử bắt hoặc từ khóa ném trong khi các trường hợp ngoại lệ không được kiểm tra xảy ra trong thời gian chạy và không cần phải xử lý là rất sâu sắc. Nó nhấn mạnh các kịch bản tiềm ẩn về sự xuất hiện của từng loại ngoại lệ.
Giải thích chi tiết về các ngoại lệ được kiểm tra là một phần đặc trưng của phương thức, trong khi các ngoại lệ không được kiểm tra thì không, cung cấp cái nhìn sâu sắc có giá trị về bản chất của các ngoại lệ này. Bài viết truyền đạt một cách hiệu quả sự khác biệt giữa hai.
Bài viết cung cấp thông tin chi tiết kỹ lưỡng về các ngoại lệ được kiểm tra và không được kiểm tra, nêu bật tầm quan trọng và ý nghĩa của chúng đối với việc thực hiện chương trình. Mô tả rõ ràng giúp hiểu được vai trò của họ trong việc phát triển và thử nghiệm phần mềm.
Bài viết trình bày một bảng so sánh toàn diện trong đó nêu ngắn gọn sự khác biệt giữa các trường hợp ngoại lệ được kiểm tra và không được kiểm tra. Bảng này giúp đơn giản hóa sự hiểu biết về hai loại ngoại lệ, sự xuất hiện của chúng và cách xử lý chúng.
Thông tin chi tiết về các ngoại lệ được kiểm tra và không được kiểm tra, bao gồm định nghĩa, sự xuất hiện và xử lý lỗi, đóng vai trò là nguồn tài nguyên quý giá cho những ai đang tìm cách nâng cao kiến thức về nguyên tắc lập trình và kiểm thử phần mềm.