>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnvEx' "TEST_ENV_VAR" :: IO Int 2000Try reading an environment variable that does not exist. Throws EnvVarDoesNotExistException:
>>> readEnvEx' "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO Int *** Exception: EnvVarDoesNotExistException "THIS_ENV_VAR_WILL_NOT_EXIST"Try reading an environment variable that cannot be read. Throws EnvVarCannotBeReadException:
>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnvEx' "BAD_ENV_VAR" :: IO Int *** Exception: EnvVarCannotBeReadException "BAD_ENV_VAR"Note that this DOES NOT read string values as one might expect:
>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnvEx' "TEST_ENV_VAR2" :: IO String *** Exception: EnvVarCannotBeReadException "TEST_ENV_VAR2"It will read string values as if they were Haskell strings:
>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnvEx' "TEST_ENV_VAR3" :: IO String "some string 1"
>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnv "TEST_ENV_VAR" :: IO (Maybe Int) Just 2000Try reading an environment variable that does not exist. Returns Nothing:
>>> readEnv "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO (Maybe Int) NothingTry reading an environment variable that cannot be read. Returns Nothing:
>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnv "BAD_ENV_VAR" :: IO (Maybe Int) NothingNote that this DOES NOT read string values as one might expect:
>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnv "TEST_ENV_VAR2" :: IO (Maybe String) NothingIt will read string values as if they were Haskell strings:
>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnv "TEST_ENV_VAR3" :: IO (Maybe String) Just "some string 1"
>>> setEnv "TEST_ENV_VAR" "2000" >>> readEnvEx "TEST_ENV_VAR" :: IO (Maybe Int) Just 2000Try reading an environment variable that does not exist. Throws EnvVarDoesNotExistException:
>>> readEnvEx "THIS_ENV_VAR_WILL_NOT_EXIST" :: IO (Maybe Int) *** Exception: EnvVarDoesNotExistException "THIS_ENV_VAR_WILL_NOT_EXIST"Try reading an environment variable that cannot be read. Returns Nothing:
>>> setEnv "BAD_ENV_VAR" "not an int" >>> readEnvEx "BAD_ENV_VAR" :: IO (Maybe Int) NothingNote that this DOES NOT read string values as one might expect:
>>> setEnv "TEST_ENV_VAR2" "some string 1" >>> readEnvEx "TEST_ENV_VAR2" :: IO (Maybe String) NothingIt will read string values as if they were Haskell strings:
>>> setEnv "TEST_ENV_VAR3" "\"some string 1\"" >>> readEnvEx "TEST_ENV_VAR3" :: IO (Maybe String) Just "some string 1"