06/04/2021, 14:47

Các ví dụ về exception trong Java - Học Java core - từ cơ bản đến nâng cao

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 ...

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.

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:

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.

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:

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.

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:

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.

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:

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.

Bùi Văn Nam

27 chủ đề

7090 bài viết

Cùng chủ đề
0