异常处理

在所有语言中,我们在学习和工作中都不可避免地会遇到错误。

程序异常或者错误主要可以分为两种:语法错误和逻辑错误。

特点:

程序一旦发生异常,就从错误的位置停了下来。不在继续执行后面的内容。

但是有时我们希望可以举行执行下面的语句或者对我发出提醒。

这是我们就可以使用try:except来实现:

try:
    tet = int(input("请输入一个数字》》"))
    print(tet*'34')
except ValueError:
    print('请输入数字')

我们可以看到程序直接跳过了出错的代码而去执行了下面的代码。

使用try和·except来处理异常:

  1. tre是我们需要处理的代码
  2. 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来实现

 

posted @ 2019-09-12 22:48  套你大象  阅读(132)  评论(0编辑  收藏  举报