Skip to content

Commit 92c4b72

Browse files
authored
Merge pull request #44 from milmazz/preserve_stacktrace
Preserve stacktrace
2 parents 5510507 + d271f61 commit 92c4b72

File tree

2 files changed

+22
-19
lines changed

2 files changed

+22
-19
lines changed

lib/scenic/cache.ex

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -48,36 +48,39 @@ defmodule Scenic.Cache do
4848
def get(key, default \\ nil)
4949

5050
def get(key, default) do
51-
try do
52-
:ets.lookup_element(@cache_table, key, 3)
53-
rescue
54-
ArgumentError -> default
55-
other -> raise other
56-
end
51+
:ets.lookup_element(@cache_table, key, 3)
52+
rescue
53+
ArgumentError ->
54+
default
55+
56+
other ->
57+
reraise(other, __STACKTRACE__)
5758
end
5859

5960
# --------------------------------------------------------
6061
def fetch(key)
6162

6263
def fetch(key) do
63-
try do
64-
{:ok, :ets.lookup_element(@cache_table, key, 3)}
65-
rescue
66-
ArgumentError -> {:error, :not_found}
67-
other -> raise other
68-
end
64+
{:ok, :ets.lookup_element(@cache_table, key, 3)}
65+
rescue
66+
ArgumentError ->
67+
{:error, :not_found}
68+
69+
other ->
70+
reraise(other, __STACKTRACE__)
6971
end
7072

7173
# --------------------------------------------------------
7274
def get!(key)
7375

7476
def get!(key) do
75-
try do
76-
:ets.lookup_element(@cache_table, key, 3)
77-
rescue
78-
ArgumentError -> raise Error, message: "Key #{inspect(key)} not found."
79-
other -> raise other
80-
end
77+
:ets.lookup_element(@cache_table, key, 3)
78+
rescue
79+
ArgumentError ->
80+
raise Error, message: "Key #{inspect(key)} not found."
81+
82+
other ->
83+
reraise(other, __STACKTRACE__)
8184
end
8285

8386
# --------------------------------------------------------

test/scenic/primitives_test.exs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ defmodule Scenic.PrimitivesTest do
8686
|> Graph.get!(:group)
8787

8888
assert p.module == Scenic.Primitive.Group
89-
assert Enum.count(p.data) == 0
89+
assert p.data == []
9090
assert p.id == :group
9191
end
9292

0 commit comments

Comments
 (0)