Класс RuntimeException
Класс RuntimeException является базовым классом для
исключений, которые возникают во время выполнения программы.
Такие исключения называются непроверяемыми (unchecked), потому
что компилятор не требует их обработки. В первом параметре
конструктор принимает сообщение об ошибке, во второй -
причину возникновения исключения (другой объект Throwable).
Класс RuntimeException наследуется от класса
Exception.
Синтаксис
public class RuntimeException extends Exception
Конструкторы
Класс RuntimeException предоставляет несколько
конструкторов:
RuntimeException()
RuntimeException(String message)
RuntimeException(String message, Throwable cause)
RuntimeException(Throwable cause)
RuntimeException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)
Пример
Давайте создадим и выбросим исключение
RuntimeException с сообщением об ошибке:
public class Main
{
public static void main(String[] args)
{
try
{
throw new RuntimeException("Something went wrong");
}
catch (RuntimeException e)
{
System.out.println(e.getMessage());
}
}
}
Результат выполнения кода:
"Something went wrong"
Пример
Давайте создадим исключение RuntimeException
с указанием причины:
public class Main
{
public static void main(String[] args)
{
try
{
int[] arr = new int[5];
int index = 10;
if (index >= arr.length)
{
throw new RuntimeException("Invalid index", new IndexOutOfBoundsException());
}
System.out.println(arr[index]);
}
catch (RuntimeException e)
{
System.out.println(e.getMessage());
System.out.println(e.getCause().getClass().getSimpleName());
}
}
}
Результат выполнения кода:
"Invalid index"
"IndexOutOfBoundsException"
Пример
Давайте перехватим несколько типов исключений, которые
являются наследниками RuntimeException:
public class Main
{
public static void main(String[] args)
{
String[] tests = {"abc", null, "12345"};
for (String test : tests)
{
try
{
System.out.println(test.length());
}
catch (NullPointerException e)
{
System.out.println("NullPointerException caught");
}
catch (RuntimeException e)
{
System.out.println("RuntimeException caught");
}
}
}
}
Результат выполнения кода:
3
"NullPointerException caught"
5