gpt4 book ai didi

python - 在引发错误中引发

转载 作者:行者123 更新时间:2023-12-01 04:23:58 25 4
gpt4 key购买 nike

我遇到错误raise eb:列表索引超出范围

我不明白为什么当我在另一个try - catch中加注时我正在 try - catch 中执行 try - catch,两者都会引发错误。

这是我的代码,错误行位于 raise eb :

try:
print("debut edit")
print(p)
modif_box = get_modif_box_profile(p)
post_box = get_Post_Box(p)
print("modi_box")
print(modif_box)
print("mbu id")
print(modif_box.id)
diff = {}
posts = {}
new_post = []
diff["posts"] = posts
posts["modified_post"] = new_post
for post in modif_box.edit_post_user.all():
# print(post.id_mod)
try:
messagenew = post_box.post.all().filter(id=post.id_mod)[0]
# print(post_new)
print("posts")
print(post)
# todo a factoriser
if messagenew.id > int(last_id) and messagenew.sender.id != p.id:
name = get_name_contact(p, messagenew)
return_post = {}
return_post["uid"] = messagenew.sender.id
return_post["pid"] = messagenew.id
return_post["author"] = name
return_post["title"] = messagenew.title
return_post["date"] = unix_time_millis(messagenew.date)
return_post["smile"] = count_smile(messagenew)
return_post["comment"] = count_comment(messagenew)
return_post["data"] = messagenew.data
return_post["type"] = messagenew.type_post.type_name
new_post.append(return_post)
else:
print("depop edit")
modif_box.edit_post_user.remove(post)
modif_box.save()
except Exception as eb:
PrintException()
# raise eb (if i decomment here i have an error in my program)
print(diff)
return diff
except Exception as e:
PrintException()
raise e

问候和感谢

最佳答案

如果您在那里注释 raise 语句,并不意味着您没有有错误;它只是意味着您处理了Exception - 在您的情况下,这是我可以告诉的IndexError -- 通过使用 except Exception 捕获它,然后调用 PrintException()

当你 raise一个异常(exception),你实际做的是:

The raise statement allows the programmer to force a specified exception to occur.

因此,通过取消注释,您可以允许名为 ebIndexError 在内部 try- except 中捕获它后重新出现阻塞并被外部 try - except 子句捕获,在该子句中您再次重新引发它。

<小时/>

通常,您不希望以这种通用的方式捕获异常,因为它可能隐藏您想了解的程序的一些不可预测的行为。

通过简单地指定以下形式的 except 子句来限制在 except 子句中捕获的异常:

except IndexError as eb:
PrintException()

可能就足够了。

关于python - 在引发错误中引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33368780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com