Spec-Zone.ru › OpenJDK 21

Класс 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 упечатан с двумя разрешенными подклассами 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, 2023, 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://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/MatchException.html

Spec-Zone.ru

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