Skip to content

Commit aa7527c

Browse files
committed
Promote reraise to preserve original stacktrace.
1 parent 5510507 commit aa7527c

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
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
# --------------------------------------------------------

0 commit comments

Comments
 (0)