异常处理
在所有语言中,我们在学习和工作中都不可避免地会遇到错误。
程序异常或者错误主要可以分为两种:语法错误和逻辑错误。
特点:
程序一旦发生异常,就从错误的位置停了下来。不在继续执行后面的内容。
但是有时我们希望可以举行执行下面的语句或者对我发出提醒。
这是我们就可以使用try:except来实现:
try: tet = int(input("请输入一个数字》》")) print(tet*'34') except ValueError: print('请输入数字')
我们可以看到程序直接跳过了出错的代码而去执行了下面的代码。
使用try和·except来处理异常:
- tre是我们需要处理的代码
- except后面跟一个错误数据类型,当代码发生错误且错误类型符合的时候,就会执行except中的代码。
3.except是支持多分支的
4.当然,我们可以使用Exception来处理所有的异常。但是有个缺点如果只用万能异常处理,你将会不知道你在哪出错了。因为它的提示都是一个。所以我一般使用多分枝和万能异常相结合。万能异常放在最后。
我们在使用万能异常时,应注意标记一下,方便提醒我们具体是哪报错了。
1 try: 2 tet = int(input("请输入一个数字》》")) 3 print(tet*'34') 4 # except ValueError: 5 # print('请输入数字') 6 except Exception as error: 7 print('错误',error)
try和else
1 try: 2 tet = int(input("请输入一个数字》》")) 3 print(tet*'34') 4 except ValueError: 5 print('请输入数字') 6 else: 7 print('套象成功3')
当我代码运行玩try中代码之后没有报错就会执行else里面的代码来提醒我们没有异常。
finally
不管代码是否异常,都会执行。
1 def func(): 2 try: 3 # dfdsfsdf 4 # dsfssgf 5 ret = open('套你大象', 'w') 6 ret.close() 7 return True 8 except: 9 ret.close() 10 finally: 11 print('执行力finally') 12 ret.close() 13 14 print(func())
finally和return相遇后依旧会执行。所以finally在函数里面使用。
我们可以使用它去做一些收尾工作。比如:我们在操作数据库时,不管最后程序是否有没出错都要关闭数据库。我们可以使用finally来实现