查看源代码 WithClauseError 异常 (Elixir v1.16.2)

with/1 表达式中的某个项与 else 中定义的任何 -> 子句都不匹配时,就会引发此异常。

此异常的以下字段是公开的,可以自由访问。

  • :term (term/0) - 与任何子句都不匹配的项。

例如,对于类似于以下的 with/1,会引发此异常,因为 {:ok, 2} 项与 else 中的 :error{:error, _} 子句都不匹配。

with {:ok, 1} <- {:ok, 2} do
  :woah
else
  :error -> :error
  {:error, _} -> :error
end