有时候Python自定的异常不够用或者是无法满足我们的要求的时候,我们就需要自定义一个异常并且进行抛出。
在讲解如何做之前,我们首先要搞清楚Python的异常是如何划分的。基本上就是分为两类
1.内建异常,就是Python本身定义的异常
2.用户自定义的异常
那么在开始编写自定义的异常之前看看Python的异常继承树,也就是要了解我们定义的异常是需要继承自那个类
可以看到所有常见的ImportError这些都是继承自Exception这个类,所以我们自定义的异常也是需要继承自这个类
话不多说,直接给出自定义异常的定义以及抛出方式
运行输出的结果是:
接下来以定义一个案例作为讲解,这个案例要实现的功能是判断用户输入的用户名长度是否满足要求(定义长度在4以内)
首先还是一样的自定义需要的异常类型
对于它的抛出方式我们可以选择是使用手动抛出还是使用捕捉系统异常一样的方式
1.手动抛出
运行之后,可以看到结果:
2.捕捉用户手动抛出的异常
运行之后的结果是
通过两种方式的对比可以看到使用第二种方式会更加接近日常生活中我们所接触到的异常抛出方式