Failure["tag",assoc]
表示由 tag 标记的类型的失败,其中的详细信息由关联 assoc 给出.
Failure
Failure["tag",assoc]
表示由 tag 标记的类型的失败,其中的详细信息由关联 assoc 给出.
更多信息
- Failure[…]["prop"] 从 Failure 对象中提取属性. Failure[…][{key1,key2,…}] 提取一组值. »
- Failure[…]["Properties"] 返回可用属性列表. »
- 关联 assoc 通常包括:
-
"MessageTemplate" 消息的字符串模板 "MessageParameters" 消息模板使用的参数 - 用 TemplateApply 将参数插入到消息模板中.
- 在条目 "MessageTemplate":>symb::name 下,消息名称可以存下来以便在产生消息时使用.
- Failure 由 Interpreter 和相关函数产生. 这种情况下,可能的标签是 "InterpretationFailure"、"RestrictionFailure"、"ConditionFailure" 和 "ConnectionFailure".
范例
打开所有单元 关闭所有单元基本范例 (2)
产生 Failure 的常见方式:
Interpreter["Integer"]["notnumber"]InputForm[%]Failure["InvalidRange", <|
"MessageTemplate" -> "Enter a number lower than `Number`",
"MessageParameters" -> <|"Number" -> 10|>
|>]范围 (10)
基本用法 (6)
只用一个标签创建一个 Failure:
Failure["InvalidInput", <||>]Failure["InvalidInput", <|"Message" -> "Input must be a string"|>]Failure["ExternalOperation", <|"MessageTemplate" -> "External operation `1` failed.", "MessageParameters" -> { "file upload"}|>]使用 StringTemplate 表明失败:
Failure["InvalidRange", <|
"MessageTemplate" -> StringTemplate["Enter a number lower than `Number`"],
"MessageParameters" -> <|"Number" -> 10|>|>]用 MessageName 表示一个失败:
MyFunc::nvldrange = "Enter a number greater than `Number`";
Failure["InvalidRange", <|"MessageTemplate" -> MyFunc::nvldrange,
"MessageParameters" -> <|"Number" -> 10|>|>]Failure 可含有元数据:
Failure["RestrictionFailure",
<|"MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> <|"Min" -> "1", "Max" -> "10", "Input" -> {"100"}|>,
"Interval" -> Interval[{1, 10}],
"Input" -> {"100"},
"Type" -> "Number"|>
]属性 (4)
f = Failure["RestrictionFailure", Association["MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> Association["Min" -> "1", "Max" -> "10", "Input" -> {"100"}],
"Interval" -> Interval[{1, 10}], "Input" -> {"100"}, "Type" -> "Number"]];f["Properties"]f["Input"]f = Failure["RestrictionFailure", Association["MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> Association["Min" -> "1", "Max" -> "10", "Input" -> {"100"}],
"Interval" -> Interval[{1, 10}], "Input" -> {"100"}, "Type" -> "Number"]];f[{"MessageTemplate", "MessageName", "MessageParameters"}]f = Failure["RestrictionFailure", Association["MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> Association["Min" -> "1", "Max" -> "10", "Input" -> {"100"}],
"Interval" -> Interval[{1, 10}], "Input" -> {"100"}, "Type" -> "Number"]];f["HeldMessageTemplate"]f = Failure["RestrictionFailure", Association["MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> Association["Min" -> "1", "Max" -> "10", "Input" -> {"100"}],
"Interval" -> Interval[{1, 10}], "Input" -> {"100"}, "Type" -> "Number"]];f["Message"]f["StyledMessage"]属性和关系 (4)
用 ToString 获取格式化的消息:
f = Interpreter["Number"]["hello"];f // ToStringf["Message"]由 SendMail 和 EntityPrefetch 这样的函数返回 Failure:
EntityPrefetch["NoSuchEntity"]对于这些函数,与 Failure 相对的是 Success:
EntityPrefetch["Planet"]FailureQ[Failure["InterpretationFailure", Association["MessageTemplate" :> Interpreter::number,
"MessageParameters" -> Association["Input" -> "notnumber"], "Input" -> "notnumber",
"Type" -> "Integer"]]]将 Association 与 Rule 一起使用会把计算的表达式嵌入到 Failure 表达式中:
MyFunc::nvldrange = "Enter a number greater than `Number`";Failure["InvalidRange", <|"MessageTemplate" -> MyFunc::nvldrange|>];
%["HeldMessageTemplate"]用 RuleDelayed 阻止计算:
Failure["InvalidRange", <|"MessageTemplate" :> MyFunc::nvldrange|>];
%["HeldMessageTemplate"]巧妙范例 (1)
用 Failure 表达式的所有属性生成一个数据集:
f = Failure["RestrictionFailure", Association["MessageTemplate" :> Interpreter::numberinterval,
"MessageParameters" -> Association["Min" -> "1", "Max" -> "10", "Input" -> {"100"}],
"Interval" -> Interval[{1, 10}], "Input" -> {"100"}, "Type" -> "Number"]];AssociationMap[f, f["Properties"]]//Dataset文本
Wolfram Research (2014),Failure,Wolfram 语言函数,https://reference.wolfram.com/language/ref/Failure.html.
CMS
Wolfram 语言. 2014. "Failure." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/Failure.html.
APA
Wolfram 语言. (2014). Failure. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/Failure.html 年
BibTeX
@misc{reference.wolfram_2026_failure, author="Wolfram Research", title="{Failure}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/Failure.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_failure, organization={Wolfram Research}, title={Failure}, year={2014}, url={https://reference.wolfram.com/language/ref/Failure.html}, note=[Accessed: 13-September-2026]}