如何使用请求在python中引发错误

问题描述 投票:0回答:2

我使用python从一些网址获取内容。所以我有一个网址列表,一切都很好,除了其中一个我得到404.我想取这个像:

for url in urls:
    r = requests.get(url)

    try:
        r.raise_for_status()
    except RuntimeError:
        print('error: could not get content from url because of {}'.format(r.status_code))

但是现在,raise_for_status()引发的异常没有被提取但只是打印出来了?如果它被引发,我如何打印自己的错误代码?

python exception python-requests python-3.6
2个回答
0
投票

你需要修改你的try catch block

try:
     r = requests.get(url)
     r.raise_for_status()
except requests.exceptions.HTTPError as error:
     print error

0
投票

你可以创建自己的例外class,然后提高它,

class MyException(Exception):
    pass
...
...
for url in urls:
    r = requests.get(url)
    try:
        r.raise_for_status()
    except requests.exceptions.HTTPError as error:
        raise MyException('error: could not get content from url because of {}'.format(r.status_code))
© www.soinside.com 2019 - 2024. All rights reserved.