ExceptionQ
更多信息
- ExceptionQ 的第二个参数中的父类型必须是有效的异常类型(字符串或符号). 它们不需要是已注册的异常类型.
范例
打开所有单元 关闭所有单元基本范例 (1)
范围 (2)
RegisterExceptionType[logicalError, "GeneralError"]这确认所传递的表达式是类型为 "GeneralError" 的有效 Exception:
ExceptionQ[Exception[logicalError, <|"Data" -> 42|>], "GeneralError"]Unprotect[logicalError]
DeleteObject @ logicalError这将测试一个不相关的 Exception 对象,并且类型不匹配:
ExceptionQ[Exception[tag], "GeneralError"]对于 ExceptionQ 的第二个参数中的类型列表,只需匹配其中一种即给出 True:
ExceptionQ[Exception[tag], {tag, "GeneralError"}]可能存在的问题 (1)
下面的例子返回 False,因为 ExceptionQ 被应用到了一个未经计算的 Exception 构造函数调用上:
ExceptionQ[Unevaluated @ Exception["SomeError"]]在应用于已完成计算的 Exception 构造函数时,ExceptionQ 则会生成 True,:
ExceptionQ[Exception["SomeError"]]巧妙范例 (1)
下面将异常类型e logicalError 注册为类型 "GeneralError" 的子类型:
RegisterExceptionType[logicalError, "GeneralError"]下面定义了一个异常处理程序,该处理程序会重新抛出类型为 "GeneralError" 的异常,并将所有其他异常转换为 Failure 对象:
customHandler = Function @ With[{e = Exception @ #},
If[ExceptionQ[e, "GeneralError"], ThrowException @ e, e["ExceptionFailure"]]
]某些普通异常被转换为 Failure:
CatchExceptions[All -> customHandler] @ ThrowException[SomeExceptionType, "abc"]在下面的例子中,类型为 logicalError 的异常被重新抛出,因为 logicalError 是 "GeneralError" 的子类型:
CatchExceptions[All -> customHandler] @ ThrowException[logicalError, 42]技术笔记
-
▪
- 处理异常
文本
Wolfram Research (2026),ExceptionQ,Wolfram 语言函数,https://reference.wolfram.com/language/ref/ExceptionQ.html.
CMS
Wolfram 语言. 2026. "ExceptionQ." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/ExceptionQ.html.
APA
Wolfram 语言. (2026). ExceptionQ. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/ExceptionQ.html 年
BibTeX
@misc{reference.wolfram_2026_exceptionq, author="Wolfram Research", title="{ExceptionQ}", year="2026", howpublished="\url{https://reference.wolfram.com/language/ref/ExceptionQ.html}", note=[Accessed: 07-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_exceptionq, organization={Wolfram Research}, title={ExceptionQ}, year={2026}, url={https://reference.wolfram.com/language/ref/ExceptionQ.html}, note=[Accessed: 07-September-2026]}