相关疑难解决方法(0)

在python中使用try vs if

在测试变量有值时,是否有理由决定使用哪一个try或哪些if结构?

例如,有一个函数返回列表或不返回值.我想在处理之前检查结果.以下哪一项更可取,为什么?

result = function();
if (result):
    for r in result:
        #process items
Run Code Online (Sandbox Code Playgroud)

要么

result = function();
try:
    for r in result:
        #process items
except TypeError:
    pass;
Run Code Online (Sandbox Code Playgroud)

相关讨论:

检查Python中的成员是否存在

python

120
推荐指数
5
解决办法
5万
查看次数

Python例外:EAFP和什么是真正的例外?

在一些地方(这里这里)已经说过,Python强调"请求宽恕而不是许可"(EAFP)应该通过以下观点来缓和,即异常只应在真正特殊情况下调用.考虑以下内容,我们将弹出并推送优先级队列,直到只剩下一个元素:

import heapq
...
pq = a_list[:]
heapq.heapify(pq)
while True:
    min1 = heapq.heappop(pq)
    try:
        min2 = heapq.heappop(pq)
    except IndexError:
        break
    else
        heapq.heappush(pq, min1 + min2)
# do something with min1
Run Code Online (Sandbox Code Playgroud)

异常仅在len(a_list)循环的迭代中引发一次,但它并不是特别的,因为我们知道它最终会发生.这个设置使我们a_list无需检查是否空了很多次,但(可能)它比使用显式条件更不易读.

对这种非特殊程序逻辑使用异常的共识是什么?

python exception

15
推荐指数
3
解决办法
2302
查看次数

什么时候应该使用"if"检查错误,什么时候应该使用例外?

你什么时候使用?我发现我使用的不仅仅是例外情况.在我得到它们之前,似乎我正在使用我的"ifs"捕获异常.我的代码中都有ifs.

python error-handling conditional exception

5
推荐指数
1
解决办法
192
查看次数

标签 统计

python ×3

exception ×2

conditional ×1

error-handling ×1