鱼C论坛

 找回密码
 立即注册
查看: 1662|回复: 3

请大神看看错误在哪里?

[复制链接]
发表于 2023-9-26 14:13:15 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
请问下面的代码为什么在抛出异常以后,不能继续执行try对应的代码呢?
class invalidcharError(Exception):
    pass
class NotChinatelError(Exception):
    pass

def register():
    tel = input('请输入您的电话号码:')
    if not tel.isdigit():
        raise invalidcharError
    if not tel.startswith('86'):
        raise NotChinatelError
    return tel
try:
    register()
except invalidcharError:
    print('电话号码不全是数字')
except NotChinatelError:
    print('非中国电话号码')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-9-26 14:13:29 | 显示全部楼层
在代码中,抛出异常后没有被捕获,因此程序会中止运行。在这种情况下,需要将抛出异常的代码包含在try语句块中,以便在异常抛出时能够被捕获。修改后的代码如下:

class invalidcharError(Exception):
    pass
class NotChinatelError(Exception):
    pass

def register():
    tel = input('请输入您的电话号码:')
    try:
        if not tel.isdigit():
            raise invalidcharError
        if not tel.startswith('86'):
            raise NotChinatelError
    except invalidcharError:
        print('电话号码不全是数字')
    except NotChinatelError:
        print('非中国电话号码')
    return tel

register()

在这个修改后的代码中,当抛出异常时,程序会跳转到对应的except语句块中,然后继续执行try语句块中的代码。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-9-26 14:18:17 | 显示全部楼层
isdkz 发表于 2023-9-26 14:13
在代码中,抛出异常后没有被捕获,因此程序会中止运行。在这种情况下,需要将抛出异常的代码包含在try语句 ...

复制了您的代码,可问题依然存在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-9-26 16:45:44 | 显示全部楼层
子飞鱼 发表于 2023-9-26 14:18
复制了您的代码,可问题依然存在。
class invalidcharError(Exception):
    pass
class NotChinatelError(Exception):
    pass

def register():
    tel = input('请输入您的电话号码:')
    if not tel.isdigit():
        raise invalidcharError
    if not tel.startswith('86'):
        raise NotChinatelError
    return tel

while True:
    try:
        register()
        break
    except invalidcharError:
        print('电话号码不全是数字')
    except NotChinatelError:
        print('非中国电话号码')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-21 10:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表