像elixir中的其他函数(以及Ecto自己的事务),我想模式匹配以处理Ecto查询的潜在错误.像这样:
case Repo.get!(User, id) do
{:ok, user} ->
#do something
{:error, message} ->
#pass the error
end
Run Code Online (Sandbox Code Playgroud)
显然这不起作用,但我如何模式匹配Ecto错误,如Ecto.NotSingleResult和其他潜在的查询问题,如预加载错误?
使用Repo.get
which 将返回一个值或nil。然后,您可以对预期结构进行模式匹配或使用 if 子句。Repo.get!
故意引发(对于您期望结构存在而不存在的情况,则会出现错误)。
归档时间: |
|
查看次数: |
1986 次 |
最近记录: |