首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回异常?

如何返回异常?
EN

Stack Overflow用户
提问于 2012-12-11 04:00:32
回答 2查看 1.8K关注 0票数 0

我写了一个函数,它需要做3次检查,如果其中一次测试失败,它应该返回一个LookupError类型的异常,但它不工作。(*verify_checksum是另一个函数)

代码语言:javascript
复制
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

例如:

输入:

代码语言:javascript
复制
check_datagram("1111000000001111000011111111000001010101101010101111111111111111000000001111111100000000","0000111100001111", "11110000")

预期输出:

代码语言:javascript
复制
"Mismatch in dst_app"
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-11 04:03:20

代码语言:javascript
复制
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?
票数 3
EN

Stack Overflow用户

发布于 2012-12-13 13:45:22

使用NPE的答案进行构造时,您应该在那里使用try..except,其中您将使用声明的check_datagram()函数。

代码语言:javascript
复制
#python3
try:
    check_datagram(a,b,c)
except LookupError as e:
    print(str(e))

允许您从引发错误中获取消息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13808259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档