天天看點

How to create custom exception in java

In this post, we will see how to create custom exception in java. It is very simple to create custom exception in java. You just need to extends Exception class to create custom exception.

Lets understand this with example. You have list of counties and if You have “USA” in list of country, then you need to throw invalidCountryException(Our custom exception).

Example:

Create InvalidCountryException.java as below

package com.sheting.basic.exception.custom;

public class InvalidCountryException extends Exception {

    InvalidCountryException(String message) {
        super(message);
    }
}
           

Create POJO class called Country.java

package com.sheting.basic.exception.custom;

public class Country {
    private String name;

    Country(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

}
           

Lets create CountryCheckMain.java. This class will have main method.

package com.sheting.basic.exception.custom;

import java.util.ArrayList;
import java.util.List;

public class CountryCheckMain {
    public static void main(String args[]) {
        List<Country> countries = new ArrayList<>();
        Country indiaCountry = new Country("India");
        Country chinaCountry = new Country("China");
        Country nepalCountry = new Country("Nepal");
        Country bhutanCountry = new Country("Bhutan");
        countries.add(indiaCountry);
        countries.add(chinaCountry);
        countries.add(nepalCountry);
        countries.add(bhutanCountry);
        boolean safe;
        try {
            safe = checkListOfCountries(countries);
            if (safe)
                System.out.println("We don't have USA in list of Countries");
            Country USACountry = new Country("USA");
            countries.add(USACountry);
            checkListOfCountries(countries);
        } catch (InvalidCountryException e) {
            e.printStackTrace();
        }

    }

    public static boolean checkListOfCountries(List<Country> countries) throws InvalidCountryException {
        for (int i = 0; i < countries.size(); i++) {
            Country country = countries.get(i);
            if (country.getName().equals("USA")) {
                throw new InvalidCountryException("USA is not allowed");
            }
        }
        return true;
    }
}
           

When you run above program, you will get following output:

We don't have USA in list of Countries
com.sheting.basic.exception.custom.InvalidCountryException: USA is not allowed
    at com.sheting.basic.exception.custom.CountryCheckMain.checkListOfCountries(CountryCheckMain.java:35)
    at com.sheting.basic.exception.custom.CountryCheckMain.main(CountryCheckMain.java:24)