使用try, except时NameError: global未定义

0 投票
3 回答
3036 浏览
提问于 2025-04-16 17:58

编辑:
忽略这个,我在发帖后大约3秒就搞定了,但我无法删除它 =(

我有一段用于处理RackSpace云文件的try和except代码

    try:
        cacheobject = cachecontainer.get_object('file.jpg')
    except NoSuchObject as objectname:
        raise tornado.web.HTTPError(404)

如果找不到'file.jpg',就会抛出一个叫'NoSuchObject'的异常。当我运行这段代码时,我遇到了这个错误:

except NoSuchObject as objectname:
NameError: global name 'NoSuchObject' is not defined

我试着把NoSuchObject放在引号里,但这样又出现了一个关于字符串异常被弃用的错误。

3 个回答

0

你试过用明确的导入吗?像这样:

from cloudfiles.errors import NoSuchObject
1

NoSuchObject是在另一个模块里,可能是在cachecontainer里面。你需要把它导入进来。

3

捂脸

是啊,这编程的事儿只是我的工作,没什么大不了的

我必须得用这个笨东西,对吧

try:
    cacheobject = cachecontainer.get_object('file.jpg')
except cloudfiles.errors.NoSuchObject as objectname:
    raise tornado.web.HTTPError(404)

我会努力在以后不犯傻的

撰写回答