Kiến thức Hữu ích 😍

Lỗi Không Tìm Thấy Lớp Chính Java? Cách Khắc Phục Hiệu Quả


Bạn đã bao giờ dành hàng giờ viết code Java, cảm thấy tự tin rằng mọi thứ đều hoàn hảo, để rồi khi chạy chương trình lại nhận được thông báo lỗi “Could not find or load main class“? Đây là một trong những lỗi phổ biến và gây khó chịu nhất đối với các lập trình viên Java, từ người mới bắt đầu cho đến cả những người đã có kinh nghiệm. Lỗi này thường xuất hiện ngay sau khi biên dịch thành công, khiến nhiều người bối rối không hiểu tại sao máy ảo Java (JVM) lại không thể tìm thấy lớp chính (main class) mà họ đã chỉ định. Vấn đề không nằm ở logic code của bạn, mà thường liên quan đến cách bạn cấu hình và chạy chương trình. Bài viết này sẽ đi sâu vào từng nguyên nhân, từ lỗi classpath, đặt tên sai, cấu trúc thư mục không đúng, cho đến cách thiết lập môi trường chuẩn. AZWEB sẽ hướng dẫn bạn từng bước để chẩn đoán và khắc phục triệt để lỗi này.

Nguyên nhân phổ biến gây ra lỗi “Could not find or load main class”

Lỗi “Could not find or load main class” không xuất hiện ngẫu nhiên. Nó là tín hiệu cho thấy Máy ảo Java (JVM) không thể định vị được file .class chứa phương thức main để khởi chạy chương trình. Hiểu rõ các nguyên nhân cốt lõi sẽ giúp bạn tiết kiệm thời gian gỡ rối và xây dựng thói quen lập trình tốt hơn. Vấn đề thường xoay quanh hai nhóm chính: cấu hình đường dẫn lớp (classpath) và quy tắc đặt tên. Ngay cả một lỗi nhỏ trong cú pháp lệnh hoặc một sự khác biệt về chữ hoa/chữ thường cũng có thể dẫn đến thông báo lỗi khó hiểu này. Hãy cùng AZWEB phân tích chi tiết từng nguyên nhân để bạn có thể nhận diện và xử lý chúng một cách hiệu quả.

Lỗi sai hoặc thiếu classpath

Classpath là một tham số quan trọng chỉ cho JVM biết nơi để tìm kiếm các lớp (class) và tài nguyên mà chương trình của bạn cần. Khi bạn chạy lệnh java, JVM sẽ dựa vào classpath để nạp lớp chính. Nếu classpath không được thiết lập đúng cách, JVM sẽ không thể tìm thấy file .class của bạn, ngay cả khi nó tồn tại. Một nguyên nhân phổ biến là classpath không chứa thư mục hiện tại (thường được biểu thị bằng dấu chấm “.”) hoặc thư mục chứa các file .class đã được biên dịch.

Hình minh họa

Một trường hợp khác là sai cú pháp khi khai báo classpath. Ví dụ, trên Windows, các đường dẫn được phân tách bằng dấu chấm phẩy (;), trong khi trên Linux hoặc macOS, chúng lại được phân tách bằng dấu hai chấm (:). Sự nhầm lẫn này dễ dàng dẫn đến lỗi.

Đặt tên lớp chính không chính xác

Một trong những quy tắc cơ bản nhất trong Java là sự tương ứng giữa tên lớp và tên file. Tên của lớp công khai (public class) phải hoàn toàn trùng khớp với tên file .java chứa nó, bao gồm cả việc phân biệt chữ hoa và chữ thường. Ví dụ, nếu lớp của bạn có tên là MyWebApp, thì file mã nguồn phải được đặt tên là MyWebApp.java. Khi bạn chạy chương trình, bạn cũng phải sử dụng chính xác tên lớp đó: java MyWebApp. Bất kỳ sự sai khác nào, dù là java mywebapp hay java MywebApp, đều sẽ khiến JVM không tìm thấy lớp.

Hình minh họa

Thêm vào đó, nếu lớp của bạn thuộc một gói (package) cụ thể, ví dụ package com.azweb.app;, thì khi chạy, bạn phải cung cấp tên đầy đủ bao gồm cả tên gói: java com.azweb.app.MyWebApp. Việc chỉ gọi java MyWebApp trong trường hợp này sẽ chắc chắn gây ra lỗi.

Cách kiểm tra và chỉnh sửa classpath đúng cách

Sau khi đã hiểu tầm quan trọng của classpath, bước tiếp theo là học cách kiểm tra và thiết lập nó một cách chính xác. Việc này đảm bảo rằng JVM luôn biết đường tìm đến các lớp cần thiết để thực thi chương trình của bạn. Tùy thuộc vào hệ điều hành và môi trường làm việc (dòng lệnh hay IDE), cách thức kiểm tra và cấu hình sẽ có đôi chút khác biệt. Tuy nhiên, nguyên tắc chung vẫn là cung cấp một đường dẫn rõ ràng và hợp lệ. Việc làm chủ kỹ năng này không chỉ giúp bạn khắc phục lỗi “Could not find or load main class” mà còn là một kỹ năng nền tảng để quản lý các dự án Java phức tạp hơn với nhiều thư viện phụ thuộc.

Kiểm tra classpath trên hệ điều hành Windows và Linux

Trên các hệ điều hành khác nhau, bạn có thể kiểm tra biến môi trường CLASSPATH toàn cục. Trên Windows, hãy mở Command Prompt và gõ lệnh echo %CLASSPATH%. Trên Linux hoặc macOS, bạn mở Terminal và gõ echo $CLASSPATH. Nếu lệnh không trả về gì, có nghĩa là biến môi trường này chưa được thiết lập.

Hình minh họa

Tuy nhiên, cách tốt và linh hoạt hơn là sử dụng tham số -cp hoặc -classpath trực tiếp khi chạy lệnh java. Điều này cho phép bạn chỉ định classpath riêng cho mỗi lần chạy mà không ảnh hưởng đến cấu hình hệ thống. Ví dụ, nếu file MyClass.class của bạn nằm trong thư mục hiện tại, bạn có thể chạy bằng lệnh: java -cp . MyClass. Dấu chấm . đại diện cho thư mục làm việc hiện tại, đảm bảo JVM sẽ tìm kiếm lớp ở đó.

Cách thêm đúng đường dẫn các thư mục hoặc file JAR vào classpath

Khi dự án của bạn lớn hơn và chứa nhiều file hoặc sử dụng các thư viện bên ngoài (dưới dạng file .jar), việc cấu hình classpath trở nên quan trọng hơn. Giả sử các file .class của bạn nằm trong thư mục bin, bạn cần chạy lệnh từ thư mục gốc của dự án và chỉ định classpath đến bin: java -cp bin com.azweb.MyClass. Nếu bạn cần thêm một file thư viện, ví dụ library.jar nằm trong thư mục lib, cú pháp sẽ như sau: trên Windows là java -cp "bin;lib/library.jar" com.azweb.MyClass, và trên Linux/macOS là java -cp "bin:lib/library.jar" com.azweb.MyClass.

Hình minh họa

Hãy luôn nhớ quy tắc phân tách: dấu chấm phẩy (;) cho Windows và dấu hai chấm (:) cho các hệ thống còn lại. Khi làm việc với các IDE như IntelliJ hay Eclipse, chúng thường tự động quản lý classpath, bạn chỉ cần thêm thư viện vào cấu hình dự án là xong. Tham khảo thêm Spring Boot là gì để hiểu cách framework hỗ trợ tự động cấu hình classpath cho dự án Java.

Kiểm tra và đặt tên lớp chính chính xác

Ngoài classpath, việc tuân thủ các quy tắc đặt tên trong Java là yếu tố sống còn để tránh lỗi. JVM rất nghiêm ngặt về quy ước tên, và một sự sai lệch nhỏ cũng đủ để nó không thể tìm thấy lớp chính của bạn. Điều này bao gồm cả tên lớp, tên file, và cách bạn khai báo gói (package). Việc kiểm tra kỹ lưỡng các yếu tố này trước khi chạy chương trình là một thói quen tốt, giúp bạn tiết kiệm thời gian và tránh được những lỗi không đáng có. Hãy cùng đi sâu vào các quy tắc cụ thể và cách áp dụng chúng để đảm bảo chương trình của bạn luôn được tìm thấy.

Quy tắc đặt tên lớp và tên file trong Java

Quy tắc vàng trong Java là: tên lớp công khai (public class) phải giống hệt tên file .java chứa nó. Sự tương đồng này bao gồm cả cách viết hoa và viết thường (case-sensitive). Ví dụ, một lớp được định nghĩa là public class MainApp phải được lưu trong một file tên là MainApp.java. Khi biên dịch, nó sẽ tạo ra file MainApp.class. Để chạy chương trình, bạn phải dùng lệnh java MainApp.

Hình minh họa

Bất kỳ sự khác biệt nào như java mainapp hay java Mainapp đều sẽ thất bại. Ngoài ra, lớp chính của bạn phải chứa một phương thức main với chữ ký chính xác: public static void main(String[] args). Thiếu public, static, hoặc sai kiểu tham số String[] args cũng có thể là nguyên nhân gây lỗi trong một số trường hợp, mặc dù lỗi thường gặp hơn vẫn là do tên lớp. Bạn có thể tìm hiểu thêm về OOP là gì để hiểu rõ hơn về cấu trúc lớp và phương thức trong Java.

Kiểm tra khai báo package và thư mục tương ứng

Khi dự án của bạn được tổ chức thành các gói (package), quy tắc còn mở rộng ra cả cấu trúc thư mục. Khai báo package ở đầu file .java phải phản ánh đúng vị trí của file đó trong hệ thống thư mục. Ví dụ, nếu bạn có khai báo package com.azweb.utils; trong file Converter.java, thì cấu trúc thư mục của bạn phải là .../com/azweb/utils/Converter.java.

Hình minh họa

Khi biên dịch, file Converter.class cũng sẽ nằm trong .../com/azweb/utils/. Để chạy một lớp có package, bạn phải đứng ở thư mục gốc chứa thư mục com và sử dụng tên đầy đủ của lớp (fully qualified name). Ví dụ: java com.azweb.utils.Converter. Chạy lệnh java Converter từ bên trong thư mục utils sẽ không hoạt động và gây ra lỗi “Could not find or load main class”. Xem thêm về cách tổ chức package là gì để ứng dụng hiệu quả trong lập trình Java.

Cấu trúc thư mục và các vấn đề liên quan

Cách bạn tổ chức các file và thư mục trong dự án Java có ảnh hưởng trực tiếp đến việc biên dịch và thực thi chương trình. Một cấu trúc thư mục lộn xộn hoặc không tuân theo quy ước có thể khiến bạn gặp khó khăn trong việc quản lý classpath và dễ gây ra lỗi. Việc duy trì một cấu trúc chuẩn không chỉ giúp dự án của bạn gọn gàng, dễ bảo trì mà còn giúp các công cụ build và chính JVM hoạt động một cách trơn tru. Hãy xem xét cấu trúc thư mục tiêu chuẩn và các lỗi phổ biến liên quan đến việc chạy lệnh từ sai vị trí.

Cấu trúc thư mục chuẩn khi biên dịch và chạy Java

Một cấu trúc dự án Java phổ biến thường tách biệt mã nguồn và các file đã biên dịch. Bạn sẽ thường thấy hai thư mục chính là src (source) và bin (binary) hoặc target. Thư mục src chứa tất cả các file .java, được sắp xếp theo cấu trúc package. Ví dụ, file App.java trong gói com.azweb.main sẽ có đường dẫn là src/com/azweb/main/App.java.

Hình minh họa

Sau khi biên dịch, các file .class tương ứng sẽ được đặt vào thư mục bin với cấu trúc thư mục được giữ nguyên: bin/com/azweb/main/App.class. Cách tổ chức này giúp giữ cho mã nguồn sạch sẽ và tách biệt khỏi các file được tạo tự động. Khi chạy chương trình, bạn sẽ đứng ở thư mục gốc của dự án và chỉ định classpath đến thư mục bin.

Vấn đề thường gặp khi chạy lệnh từ thư mục sai hoặc thiếu file class

Một lỗi sơ đẳng nhưng rất hay gặp là thực thi lệnh java từ sai vị trí. Giả sử bạn có cấu trúc bin/com/azweb/App.class. Nhiều người mới bắt đầu thường cd vào thư mục bin/com/azweb rồi chạy java App. Điều này là sai! JVM tìm kiếm lớp dựa trên tên đầy đủ từ gốc của classpath. Cách đúng là bạn phải đứng ở thư mục chứa bin (tức là thư mục gốc của dự án) và chạy lệnh java -cp bin com.azweb.App.

Hình minh họa

Luôn nhớ rằng, điểm khởi đầu để JVM tìm kiếm phải là nơi mà cấu trúc package của bạn bắt đầu. Trước khi chạy, hãy kiểm tra chắc chắn rằng file .class thực sự tồn tại ở đúng vị trí sau khi biên dịch. Một lỗi biên dịch không thành công sẽ không tạo ra file .class, và đó cũng là nguyên nhân gây ra lỗi này. Nếu bạn muốn tiết kiệm thời gian khi phát triển, hãy tham khảo thêm bài viết về Phần mềm lập trình để biết cách sử dụng IDE hỗ trợ quá trình này.

Thiết lập môi trường biên dịch đúng để tránh lỗi

Một môi trường phát triển được cấu hình chuẩn xác là nền tảng vững chắc giúp bạn tránh được vô số lỗi, bao gồm cả “Could not find or load main class”. Việc đảm bảo JDK được cài đặt đúng cách và các biến môi trường hệ thống được thiết lập hợp lý sẽ giúp các lệnh javacjava hoạt động nhất quán ở mọi nơi trên hệ thống của bạn. Hơn nữa, việc tận dụng sức mạnh của các công cụ xây dựng hiện đại và Môi trường phát triển tích hợp (IDE là gì) có thể tự động hóa phần lớn quy trình quản lý classpath, giải phóng bạn khỏi những công việc cấu hình thủ công dễ gây sai sót.

Cài đặt JDK, thiết lập biến môi trường JAVA_HOME và PATH

Để biên dịch và chạy chương trình Java từ dòng lệnh, bạn cần cài đặt Java Development Kit (JDK). Sau khi cài đặt, bước quan trọng tiếp theo là thiết lập các biến môi trường. JAVA_HOME là biến chỉ đến thư mục cài đặt gốc của JDK. Biến PATH cần được cập nhật để chứa đường dẫn đến thư mục bin của JDK (ví dụ: %JAVA_HOME%\bin trên Windows).

Hình minh họa

Điều này cho phép bạn gọi các lệnh javac (trình biên dịch) và java (trình chạy) từ bất kỳ thư mục nào trong hệ thống. Để kiểm tra xem mọi thứ đã được thiết lập đúng chưa, hãy mở một cửa sổ dòng lệnh mới và gõ java -versionjavac -version. Cả hai lệnh đều phải trả về thông tin phiên bản JDK bạn đã cài đặt.

Sử dụng công cụ build và IDE để quản lý classpath tự động

Đối với các dự án phức tạp, việc quản lý classpath và các thư viện phụ thuộc theo cách thủ công là rất cồng kềnh và dễ mắc lỗi. Đây là lúc các công cụ build như Maven hoặc Gradle và các IDE như IntelliJ IDEA, Eclipse, hoặc VS Code phát huy tác dụng. Các công cụ này sử dụng một file cấu hình (ví dụ pom.xml cho Maven) để khai báo các thư viện cần thiết. Khi bạn xây dựng dự án, chúng sẽ tự động tải về các thư viện, biên dịch mã nguồn và đóng gói mọi thứ một cách chính xác. IDE sẽ tích hợp với các công cụ này, tự động quản lý classpath cho bạn. Điều này giúp bạn tập trung vào việc viết mã thay vì loay hoay với các vấn đề về cấu hình môi trường. Nếu bạn mới bắt đầu, có thể xem hướng dẫn chi tiết về Debug là gì để học cách phát hiện và sửa lỗi hiệu quả khi chạy chương trình.

Các mẹo và lưu ý khi chạy chương trình Java

Ngay cả khi đã hiểu rõ các nguyên nhân kỹ thuật, việc tuân thủ một vài thói quen tốt và mẹo nhỏ trong quá trình làm việc hàng ngày có thể giúp bạn phòng ngừa lỗi “Could not find or load main class” một cách hiệu quả. Những lưu ý này tập trung vào việc tạo ra một quy trình làm việc cẩn thận, có hệ thống, giảm thiểu các lỗi do sơ suất hoặc do môi trường không nhất quán. Áp dụng những mẹo này sẽ giúp bạn làm việc nhanh hơn và ít gặp phải những phiền toái không đáng có.

Luôn biên dịch trước khi chạy và kiểm tra lỗi biên dịch

Đây là một bước cơ bản nhưng đôi khi bị bỏ qua. Trước khi bạn cố gắng chạy chương trình bằng lệnh java, hãy đảm bảo rằng bạn đã biên dịch thành công mã nguồn bằng lệnh javac. Luôn kiểm tra kết quả của quá trình biên dịch. Nếu có bất kỳ lỗi nào được báo cáo, hãy sửa chúng trước. Một quá trình biên dịch thất bại sẽ không tạo ra file .class hoặc tạo ra một file không hoàn chỉnh. Việc cố chạy một chương trình khi file .class không tồn-tại-hoặc-bị-lỗi là nguyên nhân trực tiếp dẫn đến lỗi “Could not find or load main class”. Hãy tạo thói quen: biên dịch, kiểm tra lỗi, rồi mới chạy.

Sử dụng câu lệnh đầy đủ, chính xác và tránh lỗi đánh máy

Lỗi đánh máy (typo) là “kẻ thù thầm lặng” của mọi lập trình viên. Khi làm việc với dòng lệnh, hãy kiểm tra kỹ từng ký tự trong câu lệnh của bạn. Một chữ cái viết sai, một dấu chấm bị thiếu trong classpath (-cp .), hay nhầm lẫn giữa tên lớp và tên file đều có thể gây ra lỗi. Nếu có thể, hãy sử dụng tính năng tự động hoàn thành của terminal (nhấn phím Tab) để điền tên file và thư mục, giảm thiểu nguy cơ gõ sai. Viết ra các câu lệnh đầy đủ và rõ ràng, thay vì dựa vào các thiết lập mặc định có thể không như bạn mong đợi.

Kiểm tra môi trường làm việc nhất quán tránh nhầm classpath

Khi bạn làm việc trên nhiều dự án hoặc chuyển đổi giữa các môi trường khác nhau (máy cá nhân, máy chủ), hãy đảm bảo rằng classpath và phiên bản Java là nhất quán. Một dự án có thể yêu cầu phiên bản Java khác hoặc một bộ thư viện khác. Việc sử dụng sai môi trường có thể dẫn đến việc JVM không tìm thấy các lớp cần thiết. Sử dụng các công cụ quản lý phiên bản như SDKMAN! hoặc thiết lập cấu hình riêng cho từng dự án trong IDE của bạn là một cách hay để duy trì sự nhất quán và tránh những xung đột không mong muốn. Ngoài ra, bạn cũng có thể tham khảo thêm về Git là gì để quản lý mã nguồn và theo dõi thay đổi giúp hạn chế lỗi khi làm việc đa người hoặc đa môi trường.

Các lỗi thường gặp và cách khắc phục nhanh

Khi đối mặt với lỗi “Could not find or load main class”, việc biết cách chẩn đoán nhanh các vấn đề phổ biến nhất sẽ giúp bạn tiết kiệm rất nhiều thời gian. Dưới đây là tóm tắt hai kịch bản lỗi thường gặp nhất và các bước khắc phục tức thì mà bạn có thể áp dụng ngay lập tức.

Lỗi nhập sai tên lớp chính hoặc thiếu file .class

Đây là lỗi dễ mắc phải nhất. Bạn đã viết public class HelloWorld nhưng lại chạy java helloworld. Hoặc bạn có lớp com.azweb.App nhưng chỉ chạy java App mà không cung cấp tên đầy đủ.
Cách khắc phục nhanh:

  1. Kiểm tra tên: So sánh chính xác từng ký tự (phân biệt chữ hoa, chữ thường) giữa tên lớp trong file .java và tên bạn gõ trong lệnh java.
  2. Kiểm tra tên đầy đủ: Nếu lớp của bạn có package, hãy đảm bảo bạn đang dùng tên đầy đủ (ví dụ: com.azweb.App).
  3. Kiểm tra file .class: Dùng lệnh ls (Linux) hoặc dir (Windows) để chắc chắn rằng file .class tương ứng đã được tạo ra trong thư mục biên dịch sau khi chạy javac.

Classpath không được đặt chính xác hoặc thiếu thư mục chứa lớp chính

Bạn đã đặt tên đúng, file .class cũng đã tồn tại, nhưng lỗi vẫn xuất hiện. Khả năng cao là do classpath. Có thể bạn quên thêm thư mục hiện tại (.) vào classpath, hoặc bạn đang chạy lệnh từ một thư mục sai.
Cách khắc phục nhanh:

  1. Thêm thư mục hiện tại: Luôn sử dụng java -cp . TenLopCuaBan nếu file .class nằm ngay trong thư mục bạn đang đứng.
  2. Chỉ định thư mục biên dịch: Nếu file .class nằm trong thư mục con (ví dụ bin), hãy chạy từ thư mục gốc với lệnh java -cp bin com.azweb.TenLopCuaBan.
  3. Kiểm tra dấu phân cách: Trên Windows dùng dấu chấm phẩy (;), trên Linux/macOS dùng dấu hai chấm (:) để ngăn cách các đường dẫn trong classpath.

Best Practices

Để tránh lỗi “Could not find or load main class” và xây dựng các dự án Java một cách chuyên nghiệp, việc áp dụng các phương pháp thực hành tốt nhất (best practices) là vô cùng quan trọng. Những thói quen này không chỉ giúp bạn giảm thiểu lỗi mà còn làm cho mã nguồn và cấu trúc dự án của bạn trở nên rõ ràng, dễ quản lý và dễ dàng hợp tác hơn.

  • Luôn kiểm tra và xác nhận tên lớp và package trước khi chạy: Tạo thói quen kiểm tra lại tên lớp, tên file và khai báo package mỗi khi bạn viết một lớp mới. Đảm bảo chúng tuân thủ quy tắc của Java và khớp với cấu trúc thư mục.
  • Thiết lập classpath rõ ràng, tránh để mặc định: Thay vì phụ thuộc vào biến môi trường classpath toàn cục, hãy sử dụng tham số -cp hoặc -classpath trong mỗi lần chạy. Điều này làm cho câu lệnh của bạn trở nên tường minh và độc lập với môi trường hệ thống.
  • Dùng IDE và hệ thống build hỗ trợ tự động xử lý môi trường: Hãy tận dụng sức mạnh của IntelliJ, Eclipse, VS Code kết hợp với Maven hoặc Gradle. Chúng sẽ tự động hóa việc quản lý classpath, tải thư viện, và biên dịch, giúp bạn tránh xa các lỗi cấu hình thủ công.
  • Không dùng ký tự đặc biệt hoặc dấu cách trong tên thư mục/class: Để tránh các vấn đề không tương thích giữa các hệ điều hành và lỗi cú pháp trong dòng lệnh, hãy luôn đặt tên file, thư mục, và lớp bằng các ký tự chữ và số, tuân theo quy ước camelCase cho tên lớp.
  • Kiểm tra kỹ lỗi biên dịch trước khi chạy chương trình: Đừng vội vàng chạy chương trình. Sau khi thực thi lệnh javac, hãy đọc kỹ các thông báo lỗi hoặc cảnh báo. Giải quyết triệt để chúng sẽ đảm bảo file .class được tạo ra một cách chính xác.

Kết luận

Lỗi “Could not find or load main class” tuy phổ biến nhưng hoàn toàn có thể được khắc phục và phòng tránh nếu bạn hiểu rõ các nguyên nhân cốt lõi. Tóm lại, vấn đề hầu như luôn bắt nguồn từ ba yếu tố chính: sai sót trong việc thiết lập classpath, không tuân thủ quy tắc đặt tên lớp và file, hoặc một cấu trúc thư mục không khớp với khai báo package. Bằng cách kiểm tra cẩn thận các yếu tố này, bạn có thể nhanh chóng xác định và giải quyết vấn đề.

Để xây dựng một quy trình làm việc hiệu quả, hãy tập thói quen thiết lập classpath một cách tường minh, đặt tên chuẩn xác và duy trì cấu trúc dự án gọn gàng. Hơn hết, việc sử dụng các công cụ hiện đại như IDE và hệ thống build tự động sẽ là “đồng minh” đắc lực, giúp bạn tự động hóa các tác vụ cấu hình phức tạp và tập trung vào điều quan trọng nhất: viết mã nguồn chất lượng. AZWEB hy vọng rằng với những hướng dẫn chi tiết trong bài viết này, bạn sẽ không còn cảm thấy bối rối khi đối mặt với lỗi này nữa. Hãy tiếp tục học hỏi, tham khảo thêm tài liệu và tham gia các cộng đồng để nâng cao kỹ năng xử lý lỗi trong Java.

Đánh giá