Skip to content

Commit 077b711

Browse files
authored
Fix KeyError custom message (#10829)
1 parent 1e4222d commit 077b711

File tree

2 files changed

+9
-0
lines changed

2 files changed

+9
-0
lines changed

lib/elixir/lib/exception.ex

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1255,6 +1255,10 @@ defmodule KeyError do
12551255
end
12561256

12571257
@impl true
1258+
def blame(exception = %{message: message}, stacktrace) when is_binary(message) do
1259+
{exception, stacktrace}
1260+
end
1261+
12581262
def blame(exception = %{term: nil}, stacktrace) do
12591263
message = message(exception.key, exception.term)
12601264
{%{exception | message: message}, stacktrace}

lib/elixir/test/elixir/exception_test.exs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -731,6 +731,11 @@ defmodule ExceptionTest do
731731
assert %ArgumentError{message: "unexpected comté"} |> message == "unexpected comté"
732732
end
733733

734+
test "KeyError" do
735+
assert %KeyError{} |> message == "key nil not found"
736+
assert %KeyError{message: "key missed"} |> message == "key missed"
737+
end
738+
734739
test "Enum.OutOfBoundsError" do
735740
assert %Enum.OutOfBoundsError{} |> message == "out of bounds error"
736741

0 commit comments

Comments
 (0)