Sunday, September 10, 2017

Bài 5 - Try catch

Tạo class mới tên là five.
Nhập vào các dòng lệnh.
public static void main(String args[]) {
     int so=0;        
     so=Integer.parseInt("88"); 
    System.out.println("Ket qua chuyen doi la: "+so);     
     int c=10+so;
    System.out.println("Ket qua tong la: "+c);
}
Chạy kết quả ra màn hình.

Ta đang dùng lệnh để chuyển kiểu String sang số. Nhưng vì một lý do nào đó, chữ ta dùng để chuyển không phải là số thì sẽ xảy ra lỗi.
Hãy thử thêm chữ a vào thành “88a”, chạy chương trình, ta sẽ thấy

Tức là đã có lỗi xảy ra, nếu đó là ứng dụng trên điện thoại, màn hình sẽ bị đen, ứng dụng tự thoát.
Để tránh điều này, Java dùng lệnh try catch để bắt lỗi, nếu có lỗi xảy ra, chương trình không bị sập.
Thêm lệnh try catch vào để đoạn code trông như sau:
public static void main(String args[]) {
      int so=0;
      try{                   
            so=Integer.parseInt("88a"); 
     System.out.println("Ket qua chuyen doi la: "+so);          }
      catch (Exception e) {           
  System.out.println("Li khi chuyn String sang number");
       }
          int c=10+so;
          System.out.println("Ket qua tong la: "+c);
}

Chạy kết quả ra màn hình, lúc này ta thấy chương trình vẫn chạy ra dòng chữ “Ket qua tong la: 10”, bên trên là thông báo lỗi ta đã gõ vào.
Khác với khi không dùng try catch chương trình sập luôn không in ra được cái gì cả.
Vì phần trong ngoặc try bị lỗi nên phần trong ngoặc catch được in ra, đoạn ngoài thì vẫn chạy bình thường.
Do biến so vẫn là số 0 nên tổng int c=10+so vẫn là số 10. Nó vẫn chạy chứ không bị sập tại lệnh chuyển kiểu như ở trên.
Bây giờ bạn lại bỏ chữ a đi, chương trình lại chạy bình thường.

Lệnh try catch giới thiệu để bạn biết, khi làm ứng dụng Android có chỗ cần dùng cấu trúc này thì coi như bạn đã quen.
Thường trong chương trình khi nào dùng try catch đã có mẫu sẵn, nếu bạn quên thì Eclipse sẽ nhắc cái này phải có try catch, thì thêm vào thôi.
Chỉ có một ít trường hợp bạn phải tự cho vào. Như khi người dùng nhập ngày tháng mà lại kèm chữ, bạn phải dùng try catch để thông báo rằng đã nhập sai, yêu cầu nhập lại.

Đó là một trong các ứng dụng thực tế của lệnh này.

No comments:

Post a Comment