Chúng ta đã được học xong toàn bộ kiến thức về cách xử lý ngoại lệ Exception trong Java, vậy thì bài này mình sẽ đưa ra một vài ví dụ về các trường hợp gặp Exception phổ biến nhất khi làm việc với Java.
Ví dụ 1: Ngoại lệ số học (ArithmeticException)
Class: Java.lang.ArithmeticException
Đây là một class có sẵn trong gói java.lang. Exception này xảy ra khi ta chia một số nguyên với số 0.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class Example1 { public static void main(String args[]) { try { int num1= 30 , num2= 0 ; int output=num1/num2; System.out.println ( "Result: " +output); } catch (ArithmeticException e){ System.out.println ( "You Shouldn't divide a number by zero" ); } } } |
Output:
1
|
You Shouldn't divide a number by zero |
Trong ví dụ trên, chúng ta đã chia một số nguyên cho số 0 vì vậy trình biên dịch sẽ throw ra ArithaturesException
.
Ví dụ 2: Ngoại lệ ArrayIndexOutOfBound
Class: Java.lang.ArrayIndexOutOfBoundsException
Ngoại lệ này xảy ra khi bạn cố gắng truy cập đến bên ngoài kích thước của một mảng. Ví dụ: Nếu mảng chỉ có 5 phần tử và bạn cố gắng hiển thị phần tử thứ 7 thì nó sẽ ném ngoại lệ này.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
class ExceptionDemo2 { public static void main(String args[]) { try { int a[]= new int [ 10 ]; //Array has only 10 elements a[ 11 ] = 9 ; } catch (ArrayIndexOutOfBoundsException e){ System.out.println ( "ArrayIndexOutOfBounds" ); } } } |
Output:
1
|
ArrayIndexOutOfBounds |
Trong ví dụ trên, mảng được khởi tạo có 10 phần tử, index từ 0 đến 9. Vì chúng ta đang cố gắng truy cập phần tử có index là 11, vượt ra ngoài kích thước của mảng nên chương trình ném ra ngoại lệ này.
Ví dụ 3: NumberFormatException
Class: Java.lang.NumberFormatException
Ngoại lệ này xảy ra khi một string bị ép kiểu sang bất cứ kiểu dữ liệu số học nào.
Ví dụ: câu lệnh int num = Integer.parseInt (“XYZ”); sẽ throw NumberFormatException
vì chuỗi “XYZ” không thể được ép kiểu thành int.
1
2
3
4
5
6
7
8
9
10
11
12
|
class ExceptionDemo3 { public static void main(String args[]) { try { int num=Integer.parseInt ( "XYZ" ) ; System.out.println(num); } catch (NumberFormatException e){ System.out.println( "Number format exception occurred" ); } } } |
Output:
1
|
Number format exception occurred |
Ví dụ 4: Ngoại lệ StringIndexOutOfBound
Class: Java.lang.NullPointer Exception
NullPointerException
là lỗi ngoại lệ xảy ra khi bạn tham chiếu tới Object nhưng nó lại không có vị trí nào trên bộ nhớ (null). Gọi một method tham chiếu null hoặc cố gắng truy cập một trường tham chiếu null là một trong những nguyên nhân phổ biến gây ra lỗi NullPointerException
.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
class Exception2 { public static void main(String args[]) { try { String str= null ; System.out.println (str.length()); } catch (NullPointerException e){ System.out.println( "NullPointerException.." ); } } } |
Output:
1
|
NullPointerException.. |
Ở đây, length()
là một hàm, nên phải được sử dụng trên một object nào đó. Tuy nhiên, trong ví dụ trên, object str là null nên NullPulumException
xảy ra.
Theo: freetuts.net