Python和Praw中的异常处理

我在使用以下代码时遇到麻烦:


import praw

import argparse


# argument handling was here


def main():

    r = praw.Reddit(user_agent='Python Reddit Image Grabber v0.1')

    for i in range(len(args.subreddits)):

        try:

            r.get_subreddit(args.subreddits[i]) # test to see if the subreddit is valid

        except:

            print "Invalid subreddit"

        else:

            submissions = r.get_subreddit(args.subreddits[i]).get_hot(limit=100)

            print [str(x) for x in submissions]


if __name__ == '__main__':

    main()

subreddit 名称被用作程序的参数。


当将无效args.subreddits值传递给时get_subreddit,它会引发一个异常,该异常应在上述代码中捕获。


当args.subreddit给定有效名称作为参数时,程序可以正常运行。


但是,当给出无效args.subreddit名称时,不会引发该异常,而是输出以下未捕获的异常。


Traceback (most recent call last):

  File "./pyrig.py", line 33, in <module>

    main()

  File "./pyrig.py", line 30, in main

    print [str(x) for x in submissions]

  File "/usr/local/lib/python2.7/dist-packages/praw/__init__.py", line 434, in get_content

    page_data = self.request_json(url, params=params)

  File "/usr/local/lib/python2.7/dist-packages/praw/decorators.py", line 95, in wrapped

    return_value = function(reddit_session, *args, **kwargs)

  File "/usr/local/lib/python2.7/dist-packages/praw/__init__.py", line 469, in request_json

    response = self._request(url, params, data)

  File "/usr/local/lib/python2.7/dist-packages/praw/__init__.py", line 342, in _request

    response = handle_redirect()

  File "/usr/local/lib/python2.7/dist-packages/praw/__init__.py", line 316, in handle_redirect

    url = _raise_redirect_exceptions(response)

  File "/usr/local/lib/python2.7/dist-packages/praw/internal.py", line 165, in _raise_redirect_exceptions

    .format(subreddit))

praw.errors.InvalidSubreddit: `soccersdsd` is not a valid subreddit

我不知道我在做什么错。我也尝试将异常代码重写为


except praw.errors.InvalidSubreddit:

这也不起作用。


扬帆大鱼
浏览 163回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python