总是忘记try,except用法,谨以此文加深印象
错误时直接打印
repr()表示返回较全的异常信息,包括异常信息的类型
try:
print(error)
except Exception as e:
print(e)
print(repr(e))
#name 'error' is not defined
#NameError("name 'error' is not defined",)
raise,异常,报SyntaxError(‘sytax error’)
try:
print(error)
except Exception as e:
raise SyntaxError('sytax error') from e
#SyntaxError: sytax error
异常,报e本身错误,和第一个一样,不过会报错,就像函数用错,语法错误一样
try:
print(error)
except NameError as e:
raise e
#NameError: name 'error' is not defined
try 没有捕获到任何异常时,才会得到执行,通俗点讲就是只有try正常运行的时候else才会有效
正确
try:
print(1)
except Exception as e:
raise SyntaxError('sytax error') from e
else:
print("程序继续运行")
#答案为1
#程序继续运行
finally :
print("执行 finally 块中的代码")
#执行 finally 块中的代码
finally语块无论是否有异常,一定会执行,就算try出现异常,没有except处理,finally也会运行。