TỔNG QUAN
CẤU TRÚC ĐIỀU KHIỂN
VÒNG LẶP
CHUỖI VÀ MẢNG
COLLECTIONS
THƯ VIỆN QUAN TRỌNG
HƯỚNG ĐỐI TƯỢNG
XỬ LÝ LUỒNG
EXCEPTION
LÀM VIỆC VỚI FILE
THAM KHẢO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Custom Exception trong Java

Trong java đã định nghĩa sẵn các exception class như ArithaturesException, NullPulumException,...v...v... những exception này sẽ được throw ra khi gặp các trường hợp cụ thể nào đó. Ví dụ nếu lấy một số nào đó chia cho 0, bạn sẽ tạo ra một ArithaturesException.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trong bài trước chúng ta đã học cách sử dụng throw để ném ra exception, ở bài này ta sẽ tiếp tục dùng đến nó để nén ra các custom exception mà ngừoi dùng tự định nghĩa.

Chúng ta có thể tự tạo ra các exception class của riêng mình và ném exception đó bằng cách sử dụng từ khóa throw. Những exception này được gọi là user-defined exception hoặc custom exception. Trong bài viết này, chúng ta sẽ học cách tạo một custom exception và throw nó vào một điều kiện cụ thể.

Để có thể học tốt bài này, bạn nên có kiến thức cơ bản về try-catch blockthrow trong java.

Bài viết này được đăng tại [free tuts .net]

1. Ví dụ về user-defined exception trong Java

Hãy bắt đầu bằng việc xem xét một ví dụ dưới đây.

/* This is my Exception class, I have named it MyException
 * you can give any name, just remember that it should
 * extend Exception class
 */
class MyException extends Exception{
   String str1;
   /* Constructor of custom exception class
    * here I am copying the message that we are passing while
    * throwing the exception to a string and then displaying 
    * that string along with the message.
    */
   MyException(String str2) {
	str1=str2;
   }
   public String toString(){ 
	return ("MyException Occurred: "+str1) ;
   }
}

class Example1{
   public static void main(String args[]){
	try{
		System.out.println("Starting of try block");
		// I'm throwing the custom exception using throw
		throw new MyException("This is My error Message");
	}
	catch(MyException exp){
		System.out.println("Catch Block") ;
		System.out.println(exp) ;
	}
   }
}

Output:

Starting of try block
Catch Block
MyException Occurred: This is My error Message

Bạn có thể thấy rằng tôi đã tự throw ra một user-defined exception bằng câu lệnh throw new MyException("This is My error Message").

Chú ý rằng:

  • User-defined exception nghĩa phải extend từ Exception class.
  • Exception được ném ra bằng cách sử dụng từ khóa throw.

2. Một ví dụ khác về user-defined exception

Throw có thể sử dụng bên trong một phương thức hay một khối lệnh nào đó. Khác với throw, throws lại dùng ngay khi bạn khai báo một phương thức, cẩn thận đừng để bị nhầm lẫn nhé.

Ở ví dụ này, chúng ta đang ném ra ngoại lệ từ một method. Trong trường hợp này, chúng ta nên sử dụng throws nếu không bạn sẽ gặp lỗi biên dịch: “unhandled exception in method”.

class InvalidProductException extends Exception
{
    public InvalidProductException(String s)
    {
        // Call constructor of parent Exception
        super(s);
    }
}
 
public class Example1
{
   void productCheck(int weight) throws InvalidProductException{
	if(weight<100){
		throw new InvalidProductException("Product Invalid");
	}
   }
   
    public static void main(String args[])
    {
    	Example1 obj = new Example1();
        try
        {
            obj.productCheck(60);
        }
        catch (InvalidProductException ex)
        {
            System.out.println("Caught the exception");
            System.out.println(ex.getMessage());
        }
    }
}

Output:

Caught the exception
Product Invalid

Trên là một vài ví dụ và cách tự tạo ra một exception trong Java.

Cùng chuyên mục:

Sử dụng JUnit để tạo unit test trong Spring Boot

Sử dụng JUnit để tạo unit test trong Spring Boot

Cách triển khai Spring Boot trên Tomcat Server

Cách triển khai Spring Boot trên Tomcat Server

Cách test RESTful API trong Spring Boot

Cách test RESTful API trong Spring Boot

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Cách dùng Spring Security trong Spring Boot để xác thực và phân quyền

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Duyệt cây nhị phân bằng phương pháp inOder trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Xóa node của cây nhị phân tìm kiếm trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Bảo mật Spring Boot RESTful Service sử dụng Basic Authentication trong Java

Xác định đường biên(boundary traversal) của cây nhị phân trong Java

Xác định đường biên(boundary traversal) của cây nhị phân trong Java

Xác định các lá của binary tree sử dụng preoder trong Java

Xác định các lá của binary tree sử dụng preoder trong Java

Tìm kiếm node của cây nhị phân tìm kiếm trong Java

Tìm kiếm node của cây nhị phân tìm kiếm trong Java

Cách chuyển HTTP sang HTTPS trong Spring Boot

Cách chuyển HTTP sang HTTPS trong Spring Boot

Triển khai cây nhị phân từ danh sách liên kết trong Java

Triển khai cây nhị phân từ danh sách liên kết trong Java

Cách tạo ra Mirror Tree từ Binary Tree bằng ngôn ngữ Java

Cách tạo ra Mirror Tree từ Binary Tree bằng ngôn ngữ Java

Sử dụng @bean trong ứng dụng Spring Boot

Sử dụng @bean trong ứng dụng Spring Boot

Spring Data JPA trong Spring Boot là gì? Spring Data JPA có gì hay?

Spring Data JPA trong Spring Boot là gì? Spring Data JPA có gì hay?

Giới thiệu về Spring Boot Actuator trong ứng dụng Spring Boot

Giới thiệu về Spring Boot Actuator trong ứng dụng Spring Boot

Tính tổng số cây nhị phân tìm kiếm có thể được tạo ra bởi N nodes trong Java

Tính tổng số cây nhị phân tìm kiếm có thể được tạo ra bởi N nodes trong Java

Tìm phần tử nhỏ nhất của cây nhị phân trong Java

Tìm phần tử nhỏ nhất của cây nhị phân trong Java

Sử dụng nhiều ViewResolver trong Spring Boot Java

Sử dụng nhiều ViewResolver trong Spring Boot Java

Tìm khoảng cách lớn nhất giữa các node của cây nhị phân trong Java

Tìm khoảng cách lớn nhất giữa các node của cây nhị phân trong Java

Top