Ngoại lệ là một sự kiện xảy ra trong quá trình thực thi của một chương trình Java, nó làm phá vỡ luồng xử lý bình thường của một chương trình, thậm chí chết chương trình.
Ngoại lệ sảy ra với nhiều lý do khác nhau, nó nằm ngoài dự tính của chương trình. Nó có thể xảy ra bởi lỗi của người dùng, một số khác bởi lỗi của lập trình viên hoặc lỗi của nguồn dữ liệu vật lý
Ví dụ điển hình nhất là khi chúng ta viết chương trình chia hai số. Nếu ta cho mẫu số bằng 0 thì sẽ phát sinh ngoại lệ vì thông thường không thể chia một số cho 0
Thông thường có thể chia exception ra làm hai loại:
- checked (compile time exceptions)
- unchecked (Runtime exceptions)
Là loại exception sảy ra trong lúc compile time. Loại này không thể bỏ qua được trong quá trình compile, mà bắt buộc ta phải xử lý nó
Là loại exception xảy ra tại thời điểm thực thi chương trình. Loại exception này được bỏ qua trong quá trình compile, không bắt buộc ta phải handle nó.
Ngoài ra, cần đề cập tới error, đây là những vấn đề quan trọng liên quan đến môi trường thực thi hoặc hệ thống mà lập trình viên không thể kiểm soát. Nó thường làm chết chương trình.
Error là những ngoại lệ mà chúng ta không thể bắt từ chương trình.
Sảy ra khi chúng ta chia một số bất kỳ cho 0
Ví dụ:
int num = 5/0;
System.out.println(num);Nếu một bất kỳ biến nào có giá trị null, thực hiện bất kỳ hoạt động nào bởi biến đó sẽ xảy ra ngoại lệ NullPointerException.
Ví dụ:
String str = null;
System.out.println(str.length());Một biến String có giá trị là các ký tự, chuyển đổi biến này thành số sẽ xảy ra NumberFormatException.
String str = "Java";
int number = Integer.valueOf(str);Nếu bạn chèn bất kỳ giá trị nào vào index sai, sẽ xảy ra ngoại lệ ArrayIndexOutOfBoundsException.
int array[] = new int[5];
array[-1] = 10;Ngoài ra còn một số exception đáng kể đến như InputMismatchException, NoSuchElementException, FileNotFoundException, ...




