问题标签 [try-except]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
125 浏览

python - 在这个 try-except 块中“msg”的目的是什么?

我正在阅读 Python 套接字编程教程,我在程序中发现了这个 except 块:

“msg”到底是什么引用(我知道它引用了错误消息);但它是什么,它是从哪里拉出来的?

抱歉,如果这个问题措辞不当。我不确定我到底应该问什么。

0 投票
2 回答
5202 浏览

python - 如何正确使用 try/except/with 内部函数和 main

我是一个相对的python新手,我对如何正确处理异常感到困惑。为愚蠢的问题道歉。

在我的 main() 中,我遍历一个日期列表,并为每个日期调用一个函数,该函数从公共 Web 服务器下载一个 csv 文件。出于明显的原因,我想正确捕获异常,但尤其是因为我不知道感兴趣的文件何时可以下载。我的程序将作为 cron 作业的一部分执行,如果可用,将尝试每 3 小时下载一次这些文件。

我想要的是下载日期列表中的第一个文件,如果结果为 404,则程序不应继续执行下一个文件,因为假设如果列表中最旧的日期不可用,则没有之后的其他人也将可用。

我有以下 python 伪代码。我在尝试下载文件的函数内部有 try/except 块,但如果函数内部发生异常,我如何在 main() 中正确处理它,以便我可以决定是否继续下一个日期。我创建一个函数来执行下载的原因是因为我想稍后在同一个 main() 块中为其他文件类型重用该代码。

0 投票
0 回答
47 浏览

python - 如果在 Python 3.1 中找到嵌套列表并返回索引?

我正在尝试处理一段处理文件输入/输出的代码。程序提示输入文件名,打开它(如果存在)并读取它,一次一行。它将每一行拆分为更大 wordList 的单独子列表。所有这一切都很好。

我遇到问题的部分是,我应该跟踪每个单词在文件/列表中出现的次数。此外,该列表应该是唯一的,因此 count 功能对我来说真的不起作用。我有一段代码似乎应该对我有用,但事实并非如此。

这只是与读取输入文件有关的块,将其拆分并将其放入列表中 - 或至少尝试这样做。截至目前,运行代码会导致无限循环,并在其中无限打印“你应该看到这个”。

如果我进行第二次尝试:除了循环,它不会再给我一个无限循环,但是当在 wordList 中找不到文件中的第二个单词时它确实给了我一个 ValueError (因为它不应该,因为之前只输入了一个词)。

谁能看到我做错了什么?如果需要,我可以发布其余的代码。

0 投票
2 回答
7165 浏览

python - Try and except 捕获所有错误,除了 sys.exit()

我创建了一个函数,但可能会弹出错误。这就是为什么我想使用异常将所有错误概括为同一条消息。

但是,此函数包含多个sys.exit()调用。

因此,如果引发错误,我想让我的代码跳转到except处理程序,除非它是由sys.exit(). 我该怎么做呢?

0 投票
1 回答
742 浏览

python - Try-except 脚本挂起而不是给出错误

我在编写用于读取树莓派上的一些温度传感器(DS18B20)的脚本时遇到了麻烦。我有一个工作脚本,但有时传感器会掉下来,然后脚本也会停止。我正在尝试通过集成 try-except 语句来制作更强大的版本。如果其中一个传感器没有反应,目标是继续到范围内的下一个传感器。如果我通过拔出其中一个传感器来模拟传感器故障,则脚本将停止对所有传感器进行测量(而不是对已拔出的传感器进行测量)。它不会给我一个错误。有任何想法吗?

这是带有 try 语句的脚本部分:

0 投票
3 回答
2911 浏览

python - 尝试/除了没有捕获“大于”错误

以下代码不起作用:

当出价高于当前玩家的现金时,将打印成功消息而不是错误消息。

但是,以下代码有效,表明这些值是正确的:

我使用 try/except 错误吗?

0 投票
1 回答
624 浏览

python-2.7 - In python 2.7, how can I wrap a class instance method or decorate it with a try/except block?

I have a repeating set of lengthy try/except1/except2/etc blocks in a series of class methods that only differ by the outside class method being called on an outside class instance. Below is a simplified version (there are actually 4 exceptions that I am handling and eight methods that only differ by the instance method being called):

I have been trying various ways of condensing this code by trying to wrap the two statements in the try: portion of the code by using nested functions, decorators, etc, but seem to fail due to the fact that I am have trouble translating other examples of this due to: 1) am creating a class instance that needs to be used later in one of the except blocks and 2) am calling an instance method and 3) I need to return the result of the instance method.

Is there anyway of accomplishing this with partial from functools or descriptors or any other means? I have a clunky implementation currently with an extended if/elif block that picks the instance method based on an integer code that I use in a wrapper function, but am thinking there must be a more elegant way. I am relatively new to Python and am at a loss...

0 投票
2 回答
74 浏览

python - 避免将变量声明为 None 有那么糟糕吗?

我正在研究 Python 中的一个经典学生问题,在一系列条目中找到最大值和最小值。通常,我想通过将所有有效的用户条目放在一个列表中来做到这一点,但我们应该逐个评估每个条目,因为它来自用户。(在这个类中,我们在列表之前覆盖循环。)

由于我没有使用列表,因此我不愿将变量声明为 None,然后评估“最大为 None 或最大 < new”,因为前一种情况只会发生一次。相反,我一直在使用 min() 和 max() ,直到我遇到以下解决方案,这在我看来很优雅,但我的同龄人认为这是可憎的。

那么问题来了:这是对 try/except 的有效使用吗?它比注释的替代方案更不pythonic吗?(当然,最 Pythonic 的方式是 min([list]) 但我在这里。)

0 投票
1 回答
882 浏览

python - Python上下文管理器没有清理

当我在上下文管理器中引发任何异常时,清理代码不会运行。例如:

将输出:

请注意,try/except 正确地捕获了异常,而 with 语句没有。关于 with 语句应该如何工作,我有什么不明白的地方吗?

您可以在此处查看小提琴中的代码:http: //pythonfiddle.com/context-manager-failing


仅供参考,我在 OSX mavericks 上运行 python 2.7。虽然我已经能够在许多环境中复制,但我怀疑这与它有多大关系。

0 投票
1 回答
2878 浏览

python - python xpath IndexError:列表索引超出范围

我正在通过 xpath 从 url 源页面中获取一个值。但这不存在。所以我想传递请求并尝试再次获取该值:我尝试了什么:

当我运行它时,出现以下错误:

在这种情况下,我如何要求再次抢夺价值?

更新

我知道这个错误意味着 xpath 不存在。所以我想请求该 url 再次获取 xpath。