我写了一个函数,它需要做3次检查,如果其中一次测试失败,它应该返回一个LookupError类型的异常,但它不工作。(*verify_checksum是另一个函数)
def check_datagram(datagram, src_comp, dst_app):
try:
src_comp==datagram[0:16]
except LookupError:
return "Mismatch in src_comp"
try:
dst_app==datagram[40:48]
except LookupError:
return "Mismatch in dst_app"
try:
verify_checksum(datagram)
except False:
return "Wrong checksum"
return True例如:
输入:
check_datagram("1111000000001111000011111111000001010101101010101111111111111111000000001111111100000000","0000111100001111", "11110000")预期输出:
"Mismatch in dst_app"发布于 2012-12-11 04:03:20
def check_datagram(datagram, src_comp, dst_app):
if src_comp != datagram[0:16]:
raise LookupError("Mismatch in src_comp")
if dst_app != datagram[40:48]:
raise LookupError("Mismatch in dst_app")
if not verify_checksum(datagram):
raise LookupError("Wrong checksum")
return True # redundant?发布于 2012-12-13 13:45:22
使用NPE的答案进行构造时,您应该在那里使用try..except,其中您将使用声明的check_datagram()函数。
#python3
try:
check_datagram(a,b,c)
except LookupError as e:
print(str(e))允许您从引发错误中获取消息。
https://stackoverflow.com/questions/13808259
复制相似问题