File tree Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Expand file tree Collapse file tree 2 files changed +11
-4
lines changed Original file line number Diff line number Diff line change @@ -62,6 +62,15 @@ defmodule System do
62
62
in the Erlang docs.
63
63
"""
64
64
65
+ defmodule EnvError do
66
+ defexception [ :env ]
67
+
68
+ @ impl true
69
+ def message ( % { env: env } ) do
70
+ "could not fetch environment variable #{ inspect ( env ) } because it is not set"
71
+ end
72
+ end
73
+
65
74
@ typedoc """
66
75
The time unit to be passed to functions like `monotonic_time/1` and others.
67
76
@@ -694,9 +703,7 @@ defmodule System do
694
703
@ doc since: "1.9.0"
695
704
@ spec fetch_env! ( String . t ( ) ) :: String . t ( )
696
705
def fetch_env! ( varname ) when is_binary ( varname ) do
697
- get_env ( varname ) ||
698
- raise ArgumentError ,
699
- "could not fetch environment variable #{ inspect ( varname ) } because it is not set"
706
+ get_env ( varname ) || raise ( EnvError , env: varname )
700
707
end
701
708
702
709
@ doc """
Original file line number Diff line number Diff line change @@ -56,7 +56,7 @@ defmodule SystemTest do
56
56
assert System . fetch_env ( @ test_var ) == :error
57
57
58
58
message = "could not fetch environment variable #{ inspect ( @ test_var ) } because it is not set"
59
- assert_raise ArgumentError , message , fn -> System . fetch_env! ( @ test_var ) end
59
+ assert_raise System.EnvError , message , fn -> System . fetch_env! ( @ test_var ) end
60
60
61
61
System . put_env ( @ test_var , "SAMPLE" )
62
62
You can’t perform that action at this time.
0 commit comments