如何在python中断言后继续执行程序?

我在python中学习异常,我有一些疑问:

我们可以在加注中使用任何名称作为错误吗?

就像我在使用raise时读过你必须定义错误类型所以我不能使用任何字符串名作为错误?像 SkienaError 或我必须记住所有的错误类型,只能使用那些错误类型名称?

a=int(input())
if a!=10:
    raise SkienaError
else:
    print(a,"pp")

第二个疑问是假设我想用户应该输入int但是他输入字符串这样一个断言弹出但我想程序应该继续而不终止并再次要求输入直到用户给int类型输入,我不想在这里使用while循环我想知道在python中是否可以使用raise或assert?喜欢:

a=int(input())
assert type(a)==int
print(a,"hello")

因此,如果用户给出str类型输入,那么程序可能会继续给出错误并询问新输入,直到输入类型为int .

回答(1)

2 years ago

为了制作你自己的例外,你必须创建它 .

例如

class MyAppLookupError(LookupError):
'''raise this when there's a lookup error for my app'''

要在抛出异常后继续执行,请执行以下操作:

a = 5
try:
    assert a == 5
except AssertionError as e:
    print(e)

try 块将尝试执行代码块 . 如果发生异常,它将执行 except 块 .