1. Try Catch là gì?
2. Từ khóa Final
3. Các kiểu exception
THỰC HIỆN:
1. Try Catch là gì?
Try Catch có nhiệm vụ bắt (Catch) các lỗi mà thực tế có thể xảy ra để xử lý
sao cho chương trình thân thiện với người dùng hơn, và chương trình của chúng
ta có thể chạy tiếp tục.
Cú pháp:
3. Các kiểu exception
THỰC HIỆN:
1. Try Catch là gì?
Khi chạy chương trình, có rất nhiều loại lỗi khác nhau có thể xảy ra như:
lỗi do người viết code, lỗi cú pháp, sai thông thông tin đầu vào, ... và
những lỗi mà không thể lường trước được. Và khi có lỗi, Java
sẽ dừng lại
và hiện thị thông tin lỗi ra màn hình, chúng ta thường được gọi là 'throw an exception/error'.
Cú pháp:
try {
// KHỐI LỆNH cần thực thi
}
catch(Exception e) { //tham số e là tên lỗi muốn xử lý
// KHỐI LỆNH xử lý lỗi
}
Ví dụ 1: Viết chương trình đọc dữ liệu nhập vào từ bàn phím, nếu dữ
liệu nhập vào là số thì hiển thị thông báo "Bạn đã nhập đúng" ngược lại hiển
thị "Dữ liệu bạn nhập không phải là số"
Code:
public class Vidu_2_2_trycatch {
public static void main(String[] args) {
int a;
Scanner duLieuNhap = new Scanner(System.in);
try {
System.out.print("Nhap so: ");
a = duLieuNhap.nextInt();
System.out.println("Ban da nhap dung!");
}catch(Exception ex){
System.out.println("Du lieu ban nhap KHONG PHAI so!");
}
}
}
2. Từ khóa Final
Có ý nghĩa sẽ chạy những dòng code sau khi kết thúc try catch, nó không quan tâm là try ... catch có lỗi hay không.
Có ý nghĩa sẽ chạy những dòng code sau khi kết thúc try catch, nó không quan tâm là try ... catch có lỗi hay không.
Ví dụ 2:
public class Vidu_2_2_trycatch {
public static void main(String[] args) {
int a;
Scanner duLieuNhap = new Scanner(System.in);
try {
System.out.print("Nhap so: ");
a = duLieuNhap.nextInt();
System.out.println("Ban da nhap dung!");
}catch(Exception ex){
System.out.println("Du lieu ban nhap KHONG PHAI so!");
}finally {
System.out.println("Try catch da CHAY XONG, code nay chay SAU CUNG.");
}
}
}
3. Các kiểu exception: Có 2 kiểu ngoại lệ trong Java:
- Checked Exceptions: Các ngoại lệ này thường là bị buộc phải bắt hoặc khai báo. Nếu quy tắc này không được tuân theo thì trình biên dịch sẽ không thực thi chương trình.
- Unchecked Exceptions và error: Ngoại lệ này thường là do viết code sai, truyền đối null hoặc tham số không chính xác...
Các ngoại lệ kiểu Checked Exceptions phổ biến:
- IOException: Ngoại lệ liên quan đến file input / output
- SQLException: Ngoại lệ liên quan đến cú pháp SQL
- DataAccessException: Ngoại lệ liên quan đến việc truy cập CSDL
- ClassNotFoundException: Bị ném khi JVM không thể tìm thấy một lớp mà nó cần, do lỗi dòng lệnh, sự cố đường dẫn hoặc tệp, class bị thiếu...
- InstantiationException: Ngoại lệ khi cố gắng tạo đối tượng của một abstract class hoặc interface
Các ngoại lệ kiểu Unchecked Exceptions phổ biến:
- NullPointerException: Ngoại lệ bị ném ra khi cố gắng truy cập một đối tượng có biến tham chiếu có giá trị hiện tại là null
- ArrayIndexOutOfBound: Ngoại lệ khi cố gắng truy cập một phần tử vượt quá độ dài của mảng
- IllegalArgumentException: Ngoại lệ bị ném ra khi một phương thức nhận được một đối số được định dạng khác với phương thức mong đợi.
- IllegalStateException: Ngoại lệ bị ném ra khi trạng thái của môi trường không phù hợp với hoạt động cố gắng thực hiện, ví dụ: Sử dụng Scanner đã bị đóng.
- NumberFormatException: Ngoại lệ bị ném khi một phương thức chuyển đổi một Chuỗi thành số nhưng không thể chuyển đổi.
- ArithmeticException: Lỗi số học, chẳng hạn như chia cho 0.
P/s: Try ... catch chạy rất tốn tài nguyên, nên khi code chúng ta nên hạn chế nhất có thể việc sử dụng try catch
No comments:
Post a Comment