Java не может предусмотреть все виды возможных исколючений, и поэтому приходится создавать свои.
Например, PositiveException — для проверки, что число должно быть больше 0
public class PositiveException extends RuntimeException { public PositiveException() { System.err.println("Value must be > 0"); } public PositiveException(String message) { super(message); System.err.println("Value must be > 0"); } public PositiveException(int value) { System.err.println("Value must be > 0, but value is " + value); } public PositiveException(String message, Throwable cause) { super(message, cause); } public PositiveException(Throwable cause) { super(cause); } public PositiveException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } }
Вид:
int a = -3; if (a<0) { throw new PositiveException(a); }
Вывод на консоль:
Value must be > 0, but value is -3
Exception in thread «main» myException.PositiveException
at myException.Main.main(Main.java:17)
Тут мы сразу видим, что число должно быть больше 0 по тексту и видим класс исключений PositiveException,т.к. ошибку можно понять по названию
класса