python自定义异常实例详解

yipeiwu_com6年前Python基础

python自定义异常实例详解

         本文通过两种方法对Python 自定义异常进行讲解,第一种创建一个新的exception类来拥有自己的异常,第二种:raise 唯一的一个参数指定了要被抛出的异常

1、可以通过创建一个新的exception类来拥有自己的异常。异常应该继承自 Exception 类,或者直接继承,或者间接继承。

>>>raiseNameError('HiThere')
Traceback(most recent call last):
File"<pyshell#45>", line 1,in<module>
raiseNameError('HiThere')
NameError:HiThere

 2、raise 唯一的一个参数指定了要被抛出的异常。它必须是一个异常的实例或者是异常的类(也就是 Exception 的子类)。

如果你只想知道这是否抛出了一个异常,并不想去处理它,那么一个简单的 raise 语句就可以再次把它抛出。

>>>classMyError(Exception):
def __init__(self, value):
      self.value = value
def __str__(self):
return repr(self.value)
>>>try:
raiseMyError(2*2)
exceptMyErroras e:
print('My exception occurred, value:', e.value)
My exception occurred, value:4
>>>raiseMyError('oops!')
Traceback(most recent call last):
File"<pyshell#64>", line 1,in<module>
raiseMyError('oops!')
MyError:'oops!'

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

打印出python 当前全局变量和入口参数的所有属性

def cndebug(obj=False): """ Author : Nemon Update : 2009.7.1 TO use : cndebug(obj) or cndebug...

ORM Django 终端打印 SQL 语句实现解析

ORM Django 终端打印 SQL 语句实现解析

在 settings.py 中添加以下内容: LOGGING = { 'version': 1, 'disable_existing_loggers': False, '...

解决python super()调用多重继承函数的问题

当类间继承关系很简单时,super()的使用很简单。 class A(object): def __init__(self): print('a') class B(A...

pymongo中group by的操作方法教程

前言 使用 pymongo 进行 group by 操作有两种基本方式,他们都是 mongodb 的原生命令,于 Collection 对象上调用。 def aggregate(se...

Python中使用支持向量机(SVM)算法

Python中使用支持向量机(SVM)算法

在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类(异常值检测)以及回归分析。 其具有以下特征: &n...