Làm cách nào để giải quyết lỗi mã tuyên bố không thể truy cập trong Java?

Lam Cach Nao De Giai Quyet Loi Ma Tuyen Bo Khong The Truy Cap Trong Java



Lỗi phổ biến nhất mà các nhà phát triển gặp phải là mã câu lệnh không thể truy cập được vì nó bị ẩn và không tạo ra bất kỳ lỗi nào trong khi thực thi. Phần này được ẩn theo một cách nào đó, vì trình biên dịch không truy cập hoặc biên dịch phần mã này vì nó nằm ở vị trí mà mã không thể truy cập được.

Bài viết này trình bày quy trình xử lý lỗi mã câu lệnh không truy cập được trong Java.

Làm cách nào để giải quyết lỗi mã tuyên bố không thể truy cập trong Java?

Nhiều lý do có thể là nguyên nhân gây ra lỗi mã câu lệnh không thể truy cập trong Java, cùng với các giải pháp tương ứng. Lỗi này không phải do cú pháp, nó hoàn toàn là lỗi logic hoặc có thể xảy ra do lỗi của con người trong một số trường hợp. Trước khi truy cập các giải pháp, trước tiên chúng ta hãy truy cập các lý do có thể là nguyên nhân gây ra lỗi mã câu lệnh không thể truy cập:







Lý do 1: Mã được chèn sau câu lệnh “break”



Các ' phá vỡ ” câu lệnh được sử dụng dọc theo câu lệnh ra quyết định và các vòng lặp. Nó dừng chu kỳ thực hiện nếu đạt đến trạng thái mong muốn. Trình biên dịch không đến được dòng bên cạnh “ phá vỡ ” tuyên bố trong khối đó. Trình biên dịch dừng chu kỳ thực thi và chuyển sang câu lệnh tiếp theo trong hệ thống phân cấp DOM.



Truy cập mã dưới đây:





lớp học Một nửa {
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {
( int Tôi = 0 ; Tôi <= 10 ; ++ Tôi ) {
nếu như ( Tôi == 5 ) {
phá vỡ ;
Hệ thống . ngoài . bản in ( Tôi ) ;
}
}
}
}

Đoạn mã trên sẽ hiển thị các giá trị từ “ 0 ' ĐẾN ' 4 ”. Nhưng, với việc sử dụng câu lệnh sau dấu “ phá vỡ ” phát sinh lỗi câu lệnh không truy cập được:



Đầu ra cho thấy sự xuất hiện của lỗi câu lệnh không truy cập được.

Giải pháp: Thử chèn mã phía trên câu lệnh “break”

Giải pháp là sử dụng câu lệnh bên ngoài khối trong đó “ khối ” tuyên bố được sử dụng. Chẳng hạn, đoạn mã trên thực thi chính xác nếu câu lệnh được đặt bên ngoài “ nếu như ” khối câu lệnh như hình dưới đây:

Ảnh chụp nhanh ở trên từ IDE cho thấy rằng lỗi mã câu lệnh không thể truy cập hiện đã được giải quyết.

Lý do 2: Mã được chèn sau Tuyên bố “tiếp tục”

Các ' Tiếp tục ” câu lệnh được sử dụng khi lập trình viên muốn bỏ qua một lần lặp cụ thể để được thực thi bởi vòng lặp. Trình biên dịch ngắt chu kỳ thực thi bất cứ khi nào nó tìm thấy “ Tiếp tục ” tuyên bố trong mã. Đó là lý do tại sao mã được thực thi sau dấu “ Tiếp tục ” gây ra lỗi “mã lệnh không truy cập được”:

lớp học Một nửa {
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) {
( int Tôi = 0 ; Tôi <= 10 ; ++ Tôi ) {
nếu như ( Tôi == 5 ) {
Tiếp tục ;
Hệ thống . ngoài . bản in ( Tôi ) ;
}
}
}
}

Đầu ra của đoạn mã trên trông như thế này:

Đầu ra cho thấy rằng 'lỗi mã không thể truy cập' đã xảy ra.

Giải pháp: Chèn mã bên ngoài Khối câu lệnh “tiếp tục”

Để giải quyết nó, chỉ cần sử dụng mã bên ngoài “ Tiếp tục ” khối câu lệnh:

Sau khi thay đổi vị trí, lỗi sẽ tự động được khắc phục.

Lý do 3: Mã được chèn sau câu lệnh “return”

Tình huống này giống như trên, trình biên dịch bỏ qua phần mã được đặt sau dấu “ trở lại ' tuyên bố. Đó là bởi vì “ trở lại ” là kết thúc mà sau đó trình biên dịch không có gì để thực hiện như trong ảnh chụp nhanh bên dưới:

Giải pháp: Mã được chèn sau câu lệnh “return” trong phương thức main()

Để giải quyết vấn đề này, hãy nhập mã sau dấu “ trở lại ” trong phương thức main():

Lý do 4: Mã được chèn sau Tuyên bố “ném”

Dòng mã được chèn sau “ ném ” tuyên bố trong “ thử ” khối không được biên dịch bởi trình biên dịch. Chẳng hạn, hãy truy cập mã dưới đây:

lớp học Một nửa {
công cộng tĩnh khoảng trống chủ yếu ( Sợi dây [ ] tranh luận ) //tạo phương thức main()
{
thử {
ném mới Ngoại lệ ( 'Ngoại lệ đầu tiên' ) ;
Hệ thống . ngoài . bản in ( 'Sau khi ném ngoại lệ' ) ;
}
nắm lấy ( Ngoại lệ k ) {
Hệ thống . ngoài . bản in ( k. nhận tin nhắn ( ) ) ;
}
}
}

Trong đoạn mã trên, hiển thị một thông báo giả được viết sau dấu “ ném ” từ khóa.

Sau khi thực thi đoạn mã trên:

Ảnh chụp nhanh ở trên cho thấy sự xuất hiện của 'lỗi mã không thể truy cập' do sử dụng mã sau dấu ' ném ' tuyên bố.

Giải pháp: Chèn mã trước từ khóa “throw”

Để giải quyết vấn đề này, hãy thử chèn ngày trước dấu “ ném ' tuyên bố. Chẳng hạn, hãy truy cập ảnh chụp nhanh bên dưới của mã được giải quyết lỗi:

Đầu ra ở trên cho thấy ngoại lệ đã bị xóa và mã hiện đang hoạt động bình thường.

Phần kết luận

Các ' mã tuyên bố không thể truy cập ” lỗi phát sinh khi dòng mã được viết ở một nơi mà trình biên dịch không thể truy cập được. Các vị trí có thể là “sau câu lệnh chặn”, “sau câu lệnh continue”, “sau câu lệnh return” hoặc “bên dưới câu lệnh ném”, v.v. Đây là một lỗi logic và có thể dễ dàng giải quyết bằng cách xem lại mã nhiều lần và hiểu cách trình biên dịch biên dịch mã.