Khi lập trình viên viết code sẽ thường xuyên mắc phải 3 lỗi như sau:
1. Syntax error(Lỗi cú pháp)
2. Run-time error(Lỗi thực thi)
3. Logical error(Lỗi logic)
Syntax error : Lỗi này thì thường giải quyết được vì khi code trình soạn code sẽ thông báo cho bạn.
Run-time error: Lỗi này xuất hiện khi chương trình thực thi, cách giải quyết như thế nào thì bài này sẽ hướng dẫn bạn
Logical error : Là lỗi logic hay còn có tên khác là lỗi luân lý, đối với loại lỗi này đa phần là do người viết code tính toán sai dẫn đến kêt quả sai! Khi lập trình đòi hỏi người lập trình tự xử lý lỗi này!
Exception là gì?
Định nghĩa:Exception (Ngoại lệ) là sự kiện xảy ra khi một chương trình đang chạy mà phát sinh ra lỗi. Nó sẽ làm gián đoạn chương trình
Example:
public static void main(String[]args) {
System.out.println("4 chia 0: "+4/0);
}
Kết quả là chương trình không thực thi được! (Không tin bạn có thể thử)
Nguyên nhân:Lỗi chia cho số 0.
Có lẽ bạn sẽ hỏi tôi: "Vậy làm sao để xử lý ngoại lệ đó!"
Giải quyết:Chúng ta sẽ bắt ngoại lệ và giải quyết chúng thông qua khối
try/catch được cung cấp trongJava
Example:
public static void main(String[]args) {
try {
System.out.println("4 chia 5: "+4/0);
} catch (Exception e) {
System.out.println("Lỗi chia cho số 0!");
}
}
Giải thích:(Exception e) trong đó "e" là tên của được gán nếu đối tượng bị lỗi, các bạn có thể đặt tên này bằng các từ khác. ví dụ: a, b, c,...
Trường hơp, nếu bạn biết chắc chắn là đó là lỗi gì thì bạn có thể làm như sau:
Example:
public static void main(String[]args) {
try {
System.out.println("4 chia 5: "+4/0);
} catch (ArithmeticException e) {
System.out.println(e);
}
}
Vấn đề tiếp theo! Nếu chúng ta không biết chính xác một ngoại lệ nào đó thì sao? Vậy thì chúng ta sẽ để chương trình làm viêc đó!
Example:
public static void main(String[]args) {
try {
System.out.println("4 chia 5: "+4/0);
} catch (Exception e) {
System.out.println("Lỗi: "+e);
}
}
Tóm lại: Nếu bạn biết một lỗi nào đó sẽ xảy ra bạn nên làm theo cách trên, còn nếu không biết thì mới bất đắc dĩ sài cách để chương trình tự bắt lỗi! Điều này thực sự cần thiết vì nó sẽ làm chương trình của bạn chạy trơn tru hơn, khi gặp lỗi sẽ không bị treo máy hoặc một vài sự cố khác, ect...
Vậy tôi muốn bẫy lỗi nhiều
Exception thì làm sao? Bạn thực hiện như bên dưới nhé!
Example:
public static void main(String[]args) {
try {
//Nội dung muốn bẫy lỗi
} catch (ExceptionType1 e) {
//Comment cho lỗi
}catch (ExceptionType2 e1) {
//Comment cho lỗi
} catch (Exception ex) {
//Exception cho những cái còn lại
}
}
Trong đó:Exception là các ngoại lệ trong java. Bạn có thể tham khảo bảng bên dưới hoặc dùng gã khổng lồ google để tìm thêm nhiều hơn.
Danh sách một số ngoại lệ:
Exception: Lớp nền của run-time
NullPointerException: Một đối tượng không tồn tại
ClassNotFoundException: Không tìm thấy Class
FileNotFoundException: Không tìm thấy file
SecurityException: Exception liên quan đến bảo mật
ArrayIndexOutOfBoundsException: Vượt quá chỉ mục của mảng
IllegalAccessException: Truy cập không hợp lệ
IllegalArgumentException: Đối số hàm
ArithmeticException: Lỗi thực thi một phép toán
NumberFormatException: Định dạng số không đúng
IOException: Lỗi nhập xuất
EOFException: Kết thúc một tập tin
NoSuchMethodException: Sai tên phương thức
InterruptedException: Ngắt luồng đang được thực thi