2016-10-29 94 views
0

我在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

为了使你自己的例外,你必须创建它。

例如

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块。

+0

我想你说的话,但没有检查出什么,我试图做的: http://paste.ofcode.org/brZxC42zRerVbmwSRpkrv4 – Eleutetio

+0

'除了error'是一个语法错误。你想'除了AssertionError' –

+0

我不能定义任何名称?我必须特别使用“AssertionError”作为关键字? – Eleutetio

相关问题