Рубрики
Без рубрики

Пользовательское Исключение Java – Пользовательские Исключения

Пользовательские исключения Java-это определяемые пользователем классы исключений. Мы можем создавать пользовательские проверенные и непроверенные классы исключений и использовать их в нашем приложении.

Автор оригинала: Pankaj Kumar.

Пользовательские исключения или определяемые пользователем исключения очень распространены в приложениях Java. Мы можем легко создавать пользовательские классы исключений для различных вариантов использования.

Каковы различные типы исключений?

В Java существуют две категории исключений:

  • Проверенные исключения – Они могут быть восстановлены. Они являются производными от класса Exception . Например, исключение IOException и исключение FileNotFoundException являются проверяемыми исключениями.
  • Непроверенные исключения – Они не подлежат восстановлению и возникают во время выполнения. Они являются производными от java.lang.RuntimeException класса. Например, Исключение NullPointerException и исключение IllegalArgumentException являются непроверенными исключениями.

Дальнейшее чтение : Обработка исключений в Java .

Продвигаясь вперед, давайте рассмотрим пользовательские исключения в следующем разделе.

Пользовательские исключения Java или пользовательские исключения

Пользовательские исключения-это определенные пользователем исключения. Они написаны программистами специально для случаев использования приложений.

Непроверенное пользовательское исключение расширяет Исключение RuntimeException или его дочерние классы.

Все исключения являются дочерними элементами Throwable.

Прежде чем мы перейдем к части реализации, давайте отметим несколько моментов.

  • Создавайте пользовательские исключения только в том случае, если они предоставляют конкретный вариант использования, который не предусмотрен ни одним из доступных исключений.
  • Все пользовательские исключения должны соответствовать стандартному соглашению об именовании. Это верблюжий случай и заканчивается словом “Исключение”.
  • Используйте перегруженные конструкторы для всех сценариев.

1. Пользовательские Непроверенные Исключения

Ниже приведен пример пользовательских непроверенных исключений.

package com.journaldev.java;

import java.util.ArrayList;

public class CustomExceptions {


    public static void main(String[] args) {
        ArrayList arrayList = new ArrayList<>();

        arrayList.add("Monday");
        arrayList.add("Tuesday");
        arrayList.add("Wednesday");

        String day = "Sunday";

        if (!arrayList.contains(day)) {

            try {
                throw new DayNotAvailableException("Day not available",day);
            } catch (DayNotAvailableException e) {
                e.getLocalizedMessage();
                e.printStackTrace();
            }
        }

    }
}


class DayNotAvailableException extends RuntimeException {

    private String day;

    public DayNotAvailableException() {
        super();
    }

    public DayNotAvailableException(String message, String day) {
        super(message);
        this.day = day;
    }

    public DayNotAvailableException(String message, String day, Throwable cause) {
        super(message, cause);
        this.day = day;
    }

    @Override
    public String toString() {
        return super.toString();
    }

    @Override
    public String getMessage() {
        return super.getMessage() + " for the day :" + day;
    }

    @Override
    public String getLocalizedMessage() {
        return "The day "+day + " is not available.";
    }
}

В приведенной выше программе мы просто выдаем ошибку, когда значение отсутствует в списке массивов .

В пользовательском исключении мы определили несколько конструкторов для разных случаев.

Функции GetMessage() и getlocalizedmessage() переопределяются для предоставления пользовательских ответов.

2. Пользовательское Проверяемое исключение

Вот простой пример пользовательского проверяемого исключения. Мы расширим класс исключений и переопределим метод toString ().

package com.journaldev.java;

public class EmployeeNotFoundException extends Exception {

	private static final long serialVersionUID = -2872694086602732648L;

	private int id;

	EmployeeNotFoundException(int i, String message) {
		super(message);
		this.id = i;
	}

	EmployeeNotFoundException(int i, String message, String cause) {
		super(message, new Throwable(cause));
		this.id = i;
	}

	@Override
	public String toString() {
		return String.format("EmployeeNotFoundException[%d]", this.id);
	}

}

Вывод

Подводя итог, можно сказать, что пользовательские исключения ведут себя как встроенные типы исключений. Создавайте пользовательское исключение всякий раз, когда вам нужно обрабатывать исключения и границы для конкретного приложения/модуля.