我应该在exeption块中放入什么,为什么它不能是裸块?

2024-03-28 12:49:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我用python编写了我的语音助手,但如果wolframalpha不给我任何答复,我不知道该怎么办

elif 'wolfram' in command:
    try:
        print("I can answer your questions")
        talk("I can answer your questions")
        question = take_command()
        app_id = "XXXXXXXXXXXX"
        client = wolframalpha.Client(app_id)
        res = client.query(question)
        answer = next(res.results).text
        print(answer)
    except:
        print("Sorry, I can't answer that")
        talk("Sorry, I can't answer that")

它给了我这些警告

PEP 8: E722 do not use bare 'except'
Too broad exception clause


1条回答
网友
1楼 · 发布于 2024-03-28 12:49:17

那只是一个警告。为了避免这种情况,您可以显式地吞并异常:删除try...except块并运行代码以找出抛出的异常,然后捕获它:

try:
    # ...code...
except NoAnswerException as ex:   # Or whatever is being thrown
    # ...handle exception gracefully

如果你真的想要一应俱全,你可以做except Exception as ex:。还请注意,通常您希望在try块中有尽可能少的代码(理想情况下只有一行),以便知道可以抛出哪些异常并显式捕获它们

相关问题 更多 >