gpt4 book ai didi

python - 当缺少所需的环境变量时应该引发哪个异常?

转载 作者:行者123 更新时间:2023-12-03 15:37:53 25 4
gpt4 key购买 nike

标题几乎已经概括了它。

我有一段代码调用 os.getenv获取 URL 和 token 以连接到服务。代码存在于一个模块中,并且只会从那里导入,即它不是脚本。

这根本不是一个大问题,因为我真的只需要崩溃并显示消息说有未设置的值,但这让我思考哪个 Python 的内置异常最适合。

我找到了 EnvironmentError , 但这似乎是 IOError 的基类和其他操作系统相关的异常继承。

会不会像 ValueError 一样简单? ,因为它实际上只是一个缺失的值?

谢谢!

最佳答案

默认 KeyError当环境变量不存在时已经引发。 os.environ["THISENVDOESNTEXIST"]
此外,如果 env 变量不存在,您可以提供默认变量。这样做不会引发错误。 os.environ.get("THISENVDOESNTEXIST", "defaultvalue")
执行的代码:

Python 3.7.4 (tags/v3.7.4:e09359112e, Jul  8 2019, 20:34:20) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.environ["THISENVDOESNTEXIST"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Users\Tin\AppData\Local\Programs\Python\Python37\lib\os.py", line 678, in __getitem__
raise KeyError(key) from None
KeyError: 'THISENVDOESNTEXIST'
>>> os.environ.get("THISENVDOESNTEXIST", "defaultvalue")
'defaultvalue'

如果你想提出你自己的自定义错误,你可以这样做:
class MyException(Exception):
pass

try:
os.environ["THISENVDOESNTEXIST"]
except KeyError as e:
raise MyException("Tried accessing an environment variable that does not exist")

关于python - 当缺少所需的环境变量时应该引发哪个异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60435406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com