我在让一个简单的例子工作时遇到了一些麻烦。我没有使用 Phoenix FWIW,只需插入
defmodule Unauthorized do
defexception message: "not authorized", plug_status: 401
end
defmodule Foo do
use Plug.Router
plug :match
plug :dispatch
get "/" do
send_resp(conn, 200, "heyyyo")
end
get "/boom" do
raise Unauthorized
end
match _ do
send_resp(conn, 404, "not found")
end
end
这是一个愚蠢的例子,但我只是想看看它是否会像我认为的那样工作。
我希望 Plug 能够处理引发的异常GET /boom
并返回 401 状态
但是,当我尝试GET /boom
返回 500 状态时,显然 Plug 没有处理异常