Python3学习(29)--异常处理

一、什么是异常?


       我们程序开发的过程中,写代码不可能是一帆风顺的,有些编译期间的错误,IDE会帮我们指出来,但是一些错误是在运行期间才能检测的到的,如果,不对这些错误进行处理的话,必定会影响到程序其他模块的使用,这种在运行期间发生的错误我们称之为异常!


当然,()编程语言中)任何称呼 都是一个对象,异常也是。


二、异常处理


          遇到异常,我们要处理它,不是等到异常发生的时候,让IDE帮你处理,等他给你抛出异常的时候,就晚了。因此需要我们在可能发生异常的地方,主动使用try/except语句。来检测try语句块中的错误,从而让except语句捕获异常信息并处理。


         有人说了,我怎么知道异常在哪可能会发生呢?   好吧,你这样问我答不上来,这种东西只可言传不可意会。


三、异常处理的语法


try:

    .......

except <异常类1> as <实例名1>:

    .......

except <异常类2> as <实例名2>:

.....................................................

finally:

    ......



(1)如果不知道try块中的错误 具体是哪个异常的话,可以except多个异常类,运行期间,发生异常的话,会自动匹配对应的异常

(2)异常类可以是Python内置的,也可以是我们自己定义的

(3)打印异常实例(对象),可以直接输出异常信息。 我们之前学过定制类,还记得__str__  和 __repr__ 的用法吗

(4)不管异常有没有捕获(处理),我们放在finally块中的代码始终会执行,比如,资源的释放,链接的关闭,都是必须的,所以,遇到这些,放到finally块中,就多加了一重保险。



四、异常处理的简单应用


案列:实现两个数的除法(// 整除)运算,并打印结果。

除数可能发生的异常:

(1)不是有效数字(当然 True  除外,True默认等于1  False就不行了)

(2)将一个字符串强转成Int

(3)等于0

系统提供的上述异常如下:

(1)TypeError

(2)ValueError

(3)ZeroDivisionError


ok,下面,我们demo演示(分两部分演示,一部分在Windows环境下,一部分在Linux系统下)


A、Windows环境


exception.py:

#!/usr/bin/env Python3
# -*- coding:utf-8 -*-

def div(num):
    try:
        result = 100//num
        print(result)
    except TypeError as e:
        print('TypeException :',e)  #打印类型错误   比如 整数 除以 个字符串
    except ValueError as e:
        print('ValueException :',e) #打印数值错误 比如 试图将一个字符串a强转为int --> int('a')
    except ZeroDivisionError as e:  
        print('ZeroDivisionException :',e) #打印整除0错误 我们知道被除数 是不可以等于0的
    finally:
        print('try..except..finally is over.....') #finally块中的代码总会执行,一些资源的关闭或释放可以放在该块中


测试:


a.正常:


Python3学习(29)--异常处理_第1张图片


b.异常☞数值错误 (这个我们需要改下除数)


Python3学习(29)--异常处理_第2张图片


c.异常☞类型错误 (除数部分我们在改回来)


Python3学习(29)--异常处理_第3张图片


d.异常☞除数等于0


Python3学习(29)--异常处理_第4张图片



B、Linux环境


Linux系统装好后,自带Python环境,博主用的Linux版本是CentOS 6.5,Python版本是2.6.6


Python3学习(29)--异常处理_第5张图片


要想在Linux下编译*.py文件,我们首先需要将*.py文件上传到Linux系统,这里,我们上传本例中的exception.py文件,如何上传文件至Linux系统,可以看我的博文----> 利用SSH工具上传文件到CentOS 6.5


上传好后,我们查看一下,exception.py文件(我们上传到了/root 根目录下)


Python3学习(29)--异常处理_第6张图片


我们用vim 命令查看一下 exception.py的内容


Python3学习(29)--异常处理_第7张图片


ok吧,没毛病吧,而且这个Linux下的py文件的编译和在Windows下是一样的,只要装有Python环境就行,有人会问,你Linux的Python环境是2.6啊,而我Windows下是Python 3.6,不冲突吗?


当然,对于这个exception.py里面的代码,是不区分Python版本的,因为是通用的,异常处理这块,就是这样写的。如果,换成其他demo,你就要斟酌一下了。


我们编译一下exception.py文件,交由Python解释器解释一下,拿到结果如下:


Python3学习(29)--异常处理_第8张图片


对比一下windows下的结果





一模一样,对不对,所以说,不要认为Linux系统很神秘,只不过你用惯了windows系统,对其他系统有抵触心理,感觉离开了windows,你就不会用电脑了一样,所以,接触新事物的时候,不要怕,只管上就行!

你可能感兴趣的:(Pyhon3.X学习)