Biểu đồ so sánh
Cơ sở để so sánh | lỗi | ngoại lệ |
---|---|---|
Căn bản | Một lỗi được gây ra do thiếu tài nguyên hệ thống. | Một ngoại lệ được gây ra vì mã. |
Phục hồi | Một lỗi là không thể phục hồi. | Một ngoại lệ có thể phục hồi. |
Từ khóa | Không có cách nào để xử lý lỗi bằng mã chương trình. | Các ngoại lệ được xử lý bằng ba từ khóa "thử", "bắt" và "ném". |
Hậu quả | Khi lỗi được phát hiện, chương trình sẽ chấm dứt bất thường. | Như một ngoại lệ được phát hiện, nó được ném và bắt bởi các từ khóa "ném" và "bắt" tương ứng. |
Các loại | Lỗi được phân loại là loại không được kiểm tra. | Các ngoại lệ được phân loại là loại được kiểm tra hoặc không được kiểm tra. |
Gói | Trong Java, lỗi được định nghĩa gói "java.lang.Error". | Trong Java, một ngoại lệ được định nghĩa trong "java.lang.Exception". |
Thí dụ | OutOfMemory, StackOverFlow. | Đã kiểm tra ngoại lệ: NoSuchMethod, ClassNotFound. Các trường hợp ngoại lệ không được kiểm tra: NullPulum, IndexOutOfBound. |
Định nghĩa lỗi
Lỗi Lỗi trực tiếp là một lớp con của lớp Được tích hợp sẵn. Lỗi là các điều kiện quan trọng xảy ra do thiếu tài nguyên hệ thống và không thể xử lý được mã của chương trình. Lỗi không thể được phục hồi bằng bất kỳ phương tiện nào vì chúng không thể được tạo, ném, bắt hoặc trả lời. Lỗi được gây ra do lỗi thảm khốc thường không thể được xử lý bởi chương trình của bạn.
Lỗi luôn thuộc loại không được kiểm tra, vì trình biên dịch không có bất kỳ kiến thức nào về sự xuất hiện của nó. Lỗi luôn xảy ra trong môi trường thời gian chạy. Lỗi có thể được giải thích với sự trợ giúp của một ví dụ, chương trình có lỗi tràn ngăn xếp, lỗi bộ nhớ hoặc lỗi sự cố hệ thống, loại lỗi này là do hệ thống. Mã không chịu trách nhiệm cho các lỗi như vậy. Hậu quả của việc xảy ra lỗi là chương trình bị chấm dứt bất thường.
Định nghĩa ngoại lệ
Ngoài ra, ngoại lệ cũng là một lớp con của lớp Được tích hợp sẵn. Ngoại lệ là các điều kiện đặc biệt xảy ra trong môi trường thời gian chạy. Hầu hết các trường hợp ngoại lệ được gây ra do mã chương trình của chúng tôi. Nhưng, các ngoại lệ có thể được xử lý bởi chính chương trình, vì các ngoại lệ có thể được phục hồi. Các trường hợp ngoại lệ được xử lý bằng cách sử dụng ba từ khóa. Cú pháp viết một ngoại lệ là:
thử {// viết mã của bạn tại đây} Catch (Loại ngoại lệ) {// viết mã của bạn tại đây}
Trong đoạn mã trên, mã được viết trong khối thử là mã mà bạn muốn theo dõi ngoại lệ. Nếu ngoại lệ xảy ra trong một khối thử, nó sẽ được ném bằng cách sử dụng từ khóa ném ném. Trường hợp ngoại lệ được ném có thể bị bắt bởi khối Bắt bắt của mã trên. Loại Exception loại ra là loại ngoại lệ đã xảy ra.
Nói một cách đơn giản, chúng ta có thể nói rằng những lỗi xảy ra do mã không đúng được gọi là ngoại lệ. Ví dụ, nếu không tìm thấy một lớp được yêu cầu hoặc không tìm thấy một phương thức được yêu cầu. Những loại ngoại lệ này là do mã trong chương trình; hệ thống không chịu trách nhiệm cho những loại ngoại lệ này. Các trường hợp ngoại lệ được phân loại là các lượt kiểm tra và kiểm tra không kiểm soát được. Các ngoại lệ không được kiểm tra không có trong kiến thức về trình biên dịch vì chúng xảy ra trong thời gian chạy trong khi đó, trình biên dịch có kiến thức về các ngoại lệ được kiểm tra vì chúng được biết đến với trình biên dịch trong thời gian biên dịch.
Sự khác biệt chính trong lỗi và ngoại lệ
- Lỗi chỉ xảy ra khi tài nguyên hệ thống bị thiếu trong khi đó, một ngoại lệ được gây ra nếu một mã có một số vấn đề.
- Một lỗi không bao giờ có thể được phục hồi trong khi đó, một ngoại lệ có thể được phục hồi bằng cách chuẩn bị mã để xử lý ngoại lệ.
- Một lỗi không bao giờ có thể được xử lý, nhưng mã có thể được xử lý ngoại lệ nếu mã ném ngoại lệ được ghi bên trong khối thử và bắt.
- Nếu xảy ra lỗi, chương trình sẽ bị chấm dứt bất thường. Mặt khác, nếu ngoại lệ xảy ra, chương trình sẽ đưa ra một ngoại lệ và nó được xử lý bằng cách sử dụng khối thử và bắt.
- Lỗi thuộc loại không được kiểm tra tức là lỗi không nằm trong kiến thức của trình biên dịch trong khi đó, một ngoại lệ được phân loại là đã chọn và không được kiểm tra.
- Lỗi được định nghĩa trong gói java.lang.Error trong khi đó, một ngoại lệ được xác định java.lang.Exception.
Phần kết luận:
Các ngoại lệ là kết quả của các lỗi được thực hiện trong quá trình mã hóa chương trình và các lỗi là kết quả của hoạt động không đúng của hệ thống