Spec-Zone.ru › OpenJDK 24

Класс 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))).

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

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

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

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

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

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

addSuppressed, fillInStackTrace, getCause, getLocalizedMessage, getMessage, getStackTrace, getSuppressed, initCause, printStackTrace, printStackTrace, printStackTrace, setStackTrace, toString

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

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

MatchException

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

© 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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/lang/MatchException.html

Spec-Zone.ru

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