Tuesday, November 29, 2016

BÃ i 22 Try catch finally trong Java

BÃ i 22 Try catch finally trong Java


Bài 22: Try, catch, finally trong Java

20111020_Java-Xulyngoaile-p2_2
?
Tr??c khi vào chi ti?t, mình s? nêu 1 tình hu?ng nh? này, ?ó là l?i chia cho 0.
Bình th??ng theo các bài tr??c, các b?n s? dùng if, else ?? lo?i b?, in ra l?i. (t?t nhiên n?u b?n ?ã bi?t try catch r?i thì không nói :D). ??c xong bài này, các b?n s? có thêm 1 cách khác, và t?t nhiên nó còn s? d?ng ?? b?t và x? lý nhi?u lo?i l?i h?n!

Ví d?: Các b?n xem ?o?n code này tr??c khi ??c lý thuy?t, ch?y th? nó, có th? nó c?ng khá d? hi?u!
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
int a 5;
        
int b 0;

        
//Cách các bài tr??c th??ng làm, dùng if, else:
        
if (== 0) {
            
System.out.println("L?i chia cho 0");
        } else {
            
System.out.println("a/b = " b);
        }

        
System.out.println(" Cách dùng try - catch - finally  ");

        
//S? d?ng try, catch ?? b?t l?i:
        
try {
            
System.out.println("a/b = " b);
        } catch (
Exception e1) {
            
System.out.println("Có l?i gì ?ó x?y ra  ");
            
System.out.println("Tên l?i là: " e1);
        } 
finally {
            
System.out.println("Có l?i hay không thì cái dòng cu?i cùng này v?n ???c in ra!");
        }

    }
}
1, Try - catch:

- Trong ví d? trên, trong kh?i try{} là nh?ng dòng l?nh chúng ta c?n th?c hi?n!
Kh?i catch (Exception e1) {} là n?i ch?a các dòng l?nh th?c hi?n khi phát hi?n l?i!
- ? ?ây, ta c?n hi?u rõ khái ni?m Exception:
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!
(Exception e1) trong ?ó "e1" 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.
- B?n có th? in "e1" ra ngoài, s? th?y ???c l?i c? th?!
- Exception là l?p cha, nó nói chung, và in ra các l?i, ngoài ra còn có l?p con c? th? và các ngo?i l? khác nh? sau:

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

Ví d?: In ra l?i c? th? v??t quá ch? m?c c?a m?ng.
PHP:
package javaandroidvn;

public class 
JavaAndroidVn {

    public static 
void main(String[] args) {
        
int arrInt[] = {124710};
        try {
            
System.out.println("arrInt[6] = " arrInt[6]);

        } catch (
ArrayIndexOutOfBoundsException e2) {
            
System.out.println("L?i! V??t quá ch? m?c c?a m?ng! " e2);
        }

    }
}
Ngoài ra, ?? in nhi?u Exception thì ra làm nh? sau:
PHP:
try {
    
//N?i dung mu?n b?y l?i} catch (ExceptionType1 e) {
    
//Kh?i l?nh cho l?i}catch (ExceptionType2 e1) {
    
//Kh?i l?nh cho l?i} catch (Exception ex) {
    
//Exception cho nh?ng cái còn l?i}
Trong ?ó ExceptionType là nh?ng lo?i Exception c? th? ?ã nêu ? phía trên!

2, Finally?

Nó n?m ? cu?i cùng c?a kh?i l?nh try - catch - finally, nó luôn luôn ???c th?c hi?n ngay c? khi ch??ng trình có b?t ???c l?i
hay không!
Trong kh?i l?nh ??y ?? nh? ví d? ? ??u bài, dòng System.out.println("Có l?i hay không thì cái dòng cu?i cùng này v?n ???c in ra!");
Luôn luôn ???c th?c hi?n và in ra khi b?n gán b?t giá tr? nào cho b!

Xem thêm video nói khá ??y ?? v? try - catch - finally c?a Blog StudyAndShare



?

B? sung thêm video v? throw and throws

?

Ngu?n : Android.vn

Available link for download