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 不使用裸露的“除外”
过于宽泛的例外条款
解决方案
这只是一个 linter 警告。为避免它,您可以显式吞下异常:删除try...except
块并运行代码以找出抛出的异常,然后捕获它:
try:
# ...code...
except NoAnswerException as ex: # Or whatever is being thrown
# ...handle exception gracefully
如果你真的想要一个包罗万象的,你可以做到except Exception as ex:
。另请注意,通常您希望块中的代码尽可能少try
(理想情况下只有一行),以便您知道可以抛出哪些异常并明确捕获它们。
推荐阅读
- symfony4 - 如何将日志从 Symfony 分析器导出到外部文件?
- java - 为什么 String#hashCode 使用本地中间变量来存储 hashCode 结果?
- sql-server - Swift 只打印我的 sql server 查询结果的第一个字符
- date - Yesterday date using VBS code and batch file (format : YYYY_MM_DD)
- javascript - Canvas 使用方法创建 javascript 对象
- react-router - 将 material-ui 主题与 react-router 一起使用
- css - 如何让文本在 Outlook 2016 中闪烁?
- c# - 绑定项目重置时,Core.NET 选择列表不会在回发时重置
- aws-lambda - Zappa 异步任务导致 Amazon Cloudfront 生成 403 Bad Request
- python - 为什么有时可以在 Python 中将列表转换为集合,但有时却不能?