sách gpt4 ai đã đi

python - 为什么 "except:"能够捕获此错误,但不能捕获 "except Exception, e:"?

In lại 作者:行者123 更新时间:2023-12-02 05:57:31 28 4
mua khóa gpt4 Nike

我有以下文件:

from fabric.api import env, execute, run

env.hosts = ['1.2.3.4']

def taskA():
run('ls')

định nghĩa main():
thử:
execute(taskA)
ngoại trừ:
print "Exception Caught"

chủ yếu()

当我运行这个时,我能够看到“异常捕获”:
$ python test.py
[1.2.3.4] Executing task 'taskA'
[1.2.3.4] run: ls

Fatal error: Timed out trying to connect to 1.2.3.4 (tried 1 time)

Underlying exception:
timed out

Aborting.
Exception Caught

但是,当我切换到这个时:
định nghĩa main():
thử:
execute(taskA)
ngoại trừ Ngoại lệ, e:
print "Exception Caught", e

chủ yếu()

我没有看到异常被捕获:
[1.2.3.4] run: ls

Fatal error: Timed out trying to connect to 1.2.3.4 (tried 1 time)

Underlying exception:
timed out

Aborting.

有什么理由让我能够在上面的代码中而不是下面的代码中捕获错误?

1 Câu trả lời

此异常并非源自 Ngoại lệ .它看起来像一个 SystemExit ,源自 BaseException直接地。 except Exception只捕获 Ngoại lệ 的实例.

如果你真的想捕获所有的异常,你可以用

except BaseException as e:
SystemExitchăn bông sys.exit 抛出和一些类似的函数会导致解释器关闭(或至少结束线程)同时仍在运行 __exit__方法和 Cuối cùng块。也可以手动 throw 。
BaseException如此存在 SystemExit并且 except Exception 没有捕捉到一些类似的异常通常不打算处理它们的块。它类似于 Java 的 Throwable .个人希望平淡 ngoại trừ:块没有捕获 BaseException ;它违背了拥有 BaseException 的一些目的首先。

关于python - 为什么 "except:"能够捕获此错误,但不能捕获 "except Exception, e:"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45424332/

28 4 0
Bài viết được đề xuất: r - gsub 并删除 R 中 < 和 > 之间的所有字符
Bài viết được đề xuất: Azure 函数授权
Bài viết được đề xuất: azure - Azure AD Graph API 和 Microsoft Graph API 之间有什么区别
Bài viết được đề xuất: laravel - Laravel Eloquent获取结果,关系数据为空
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com