Spec-Zone.ru › OpenJDK 27

Класс MatchException

java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException
java.lang.MatchException
Все реализуемые интерфейсы:
Serializable
public final class MatchException extends RuntimeException
Выбрасывается при неожиданном сбое сопоставления с образцом.

MatchException может быть выброшено, когда исчерпывающая языковая конструкция сопоставления с образцом (например, выражение switch) во время выполнения встречает значение, не соответствующее ни одному из указанных образцов, хотя эта конструкция была признана исчерпывающей. Это происходит намеренно и может быть вызвано рядом причин:

  • Аномалии раздельной компиляции, при которых части иерархии типов, на которые ссылаются образцы, были изменены, но конструкция сопоставления с образцом не была перекомпилирована. Например, если во время выполнения запечатанный интерфейс имеет иной набор разрешённых подтипов, чем во время компиляции, или если класс перечисления во время выполнения имеет иной набор констант перечисления, чем во время компиляции, или если иерархия типов была каким-либо несовместимым образом изменена между компиляцией и выполнением.
  • null значения и вложенные образцы с запечатанными классами. Например, если интерфейс I является sealed с двумя разрешёнными подклассами A и B, а класс записи R имеет единственный компонент типа I, то два образца записи R(A a) и R(B b) вместе считаются исчерпывающими для типа R, но ни один из этих образцов не будет соответствовать результату new R(null).
  • null значения и вложенные образцы записи. Если дан класс записи S с единственным компонентом типа T, где T — другой класс записи с единственным компонентом типа String, то вложенный образец записи R(S(var s)) считается исчерпывающим для типа R, но не соответствует результату new R(null) (тогда как он соответствует результату new R(new S(null)) does).

MatchException также может быть выброшено в процессе сопоставления значения с образцом. Например, сопоставление с образцом, включающее образец записи, может потребовать неявного вызова методов доступа для извлечения значений компонентов. Если какой-либо из этих методов доступа выбрасывает исключение, сопоставление с образцом завершается аварийно и выбрасывает MatchException. Исходное исключение будет задано в качестве cause для MatchException. Исключения, добавленные с помощью suppressed, записываться не будут.

См. Спецификацию языка Java:
14.11.3 Выполнение оператора switch
14.30.2 Сопоставление с образцом
15.28.2 Вычисление выражений switch во время выполнения
Начиная с:
21
См. также:
  • Сериализованное представление

Краткое описание конструкторов

Конструктор Описание
MatchException(String message, Throwable cause)
Создаёт MatchException с указанным подробным сообщением и причиной.

Краткое описание методов

Методы, объявленные в классе Throwable

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString
Модификатор и тип Метод Описание
final void addSuppressed(Throwable exception)
Добавляет указанное исключение к исключениям, которые были подавлены для передачи этого исключения.
Throwable fillInStackTrace()
Заполняет трассировку стека выполнения.
Throwable getCause()
Возвращает причину этого объекта, способного выбрасывать исключения, или null, если причина отсутствует или неизвестна.
String getLocalizedMessage()
Создаёт локализованное описание этого объекта, способного выбрасывать исключения.
String getMessage()
Возвращает строку с подробным сообщением этого объекта, способного выбрасывать исключения.
StackTraceElement[] getStackTrace()
Предоставляет программный доступ к информации о трассировке стека, выводимой методом Throwable.printStackTrace().
final Throwable[] getSuppressed()
Возвращает массив, содержащий все исключения, которые были подавлены, обычно оператором try-with-resources, для передачи этого исключения.
Throwable initCause(Throwable cause)
Инициализирует причину этого объекта, способного выбрасывать исключения, указанным значением.
void printStackTrace()
Выводит этот объект, способный выбрасывать исключения, и его трассировку в стандартный поток ошибок.
void printStackTrace(PrintStream s)
Выводит этот объект, способный выбрасывать исключения, и его трассировку в указанный поток печати.
void printStackTrace(PrintWriter s)
Выводит этот объект, способный выбрасывать исключения, и его трассировку в указанный объект для печати.
void setStackTrace(StackTraceElement[] stackTrace)
Задаёт элементы трассировки стека, которые будут возвращены методом Throwable.getStackTrace() и выведены методом Throwable.printStackTrace() и связанными методами.
String toString()
Возвращает краткое описание этого объекта, способного выбрасывать исключения.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт определённое количество реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать, пока он не будет пробуждён, обычно посредством уведомления или прерывания, либо пока не истечёт определённое количество реального времени.

Подробное описание конструкторов

MatchException

public MatchException(String message, Throwable cause)
Создаёт MatchException с указанным подробным сообщением и причиной.
Параметры:
message — подробное сообщение (сохраняется для последующего получения методом Throwable.getMessage()).
cause — причина (сохраняется для последующего получения методом Throwable.getCause()). (Допускается значение null, указывающее, что причина отсутствует или неизвестна.)

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API