稀土掘金 稀土掘金

Python Throw Exception简介及实例

Python Throw Exception

Python Throw Exception简介

下面的文章提供了一个Python抛出异常的概要。当我们的程序中没有程序或语法错误时,Python有时会返回错误或异常,有时错误的输入也会产生异常,如两个数字的除法不会返回异常,但数字除以0会返回异常。因此,我们需要做适当的异常处理,我们需要检测我们程序的哪一部分可以返回异常,我们可以用try-catch块来包围这一部分,并向用户返回一个适当的异常,这样他就可以在程序执行过程中识别该程序。

引发异常

我们可以使用 raise 关键字和异常的名称,通过 python 强行抛出一个异常。我们也可以在异常中传递任何信息,或者简单地写一个异常名称。

例子 #1

代码

raise NameError("Hello")

输出

Python Throw Exception 1

正如你所看到的,python返回了一个带有Hello消息的NameError异常。我们也可以生成没有任何消息的异常。

例子 #2

代码

raise NameError

输出

raise NameError

正如你所看到的,这个异常被生成了,但它并不理想。所以我们可以尝试捕捉这个异常,并尝试在程序执行过程中发生这种异常时显示一个自定义的消息。

例子 #3

代码

try:
raise NameError('Hello')
except NameError:
print('Sorry Exception is generated')

输出

Python Throw Exception 3

在这个例子中,你可以看到我们在try块中写了我们的代码。我们在try块中编写了他们的一段可能返回异常的代码,并在catch块中捕获该异常。我们定义了except块,并定义了我们要寻找的异常的名称。如果程序返回了那个异常,那么我们就会向用户返回一个自定义的信息,而且它看起来比默认的python异常更干净,更有希望。

用户定义的异常

用户通过制作类来定义这些类型的异常。一般来说,异常都是从Exception类中继承的。这个类与我们在程序中制作的其他自定义类非常相似。我们可以在这些类里面写任何东西,但最好的做法是保持非常简单,只定义异常处理程序需要的属性或变量或信息。

例子 #1

代码

class failedException(Exception):
def __init__(self):
super()
try:
marks = 35
print("Your marks are: "+str(marks))
if marks<36:
raise failedException
except failedException:
print("Sorry! You are failed!")
else:
print("Congratulations! You are passed")

输出

You marks are: 35

在上面的程序中,你可以看到我们已经定义了 failedException 类。你可以按照你的意愿定义任何名字。我们正在继承这个异常类。我们在里面定义并使用了构造函数;我们调用基类方法,即super()。我们创建了一个尝试块,然后我们定义了一个变量mark,其值为35。首先,我们只是打印消息和变量的值。然后我们检查值是否小于36,然后我们引发异常。

我们可以为这个异常写任何名字,因为它是用户定义的。然后我们定义了except,用来捕捉我们的异常并打印定义的消息,在else条件下,我们定义了另一个消息。当我们的条件失败时,我们定义的异常就会被调用,并打印出一条信息。

例子 #2

代码

class MarksRange(Exception):
def __init__(self, marks, message="You are failed!"):
self.marks = marks
self.message = message
super().__init__(self.message)
def __str__(self):
return f'{self.marks} -> {self.message}'
marks = int(input("Enter marks: "))
if not marks > 36:
raise MarksRange(marks)

输出

Python Throw Exception 5

在上面的程序中,我们创建了一个自定义的类MarksRange并继承了基类Exception。

我们在类中定义了构造函数,并传递了self、marks和message三个变量,这些变量用来保存我们的值。我们用我们的自定义参数,即marks和message,来重写我们的构造函数。我们使用super()手动调用父类的异常,并使用自我参数 marks 和 messages。

我们使用 __str__ 来显示类的异常和我们定义的消息,并且我们的异常 MarksRange 将被引发。Python 将要求用户输入分数,然后检查分数是否小于 36。如果条件符合,那么我们就会引发异常;如果条件不符合,就不会发生什么。当我们创建一个大型的Python程序时,将自定义的用户定义的异常保存在一个单独的文件中总是一个很好的做法;这是一种标准的流程,需要遵循。我们也可以将我们的异常文件命名为exception.py或error.py。

结论 - Python 抛出异常

用户定义的异常是指用户为处理一些没有内置的错误情况而定义的异常。我们要制作自定义的异常,并将其相应地显示给用户端。

玻璃钢生产厂家常见玻璃钢雕塑摆件销售企业玻璃钢花盆百度百科厦门玻璃钢花盆厂会发光的玻璃钢雕塑供应商玻璃钢林则徐雕塑安徽玻璃钢马雕塑厂家温州常用玻璃钢雕塑摆件无锡玻璃钢仿铜雕塑定制丽水玻璃钢雕塑服务介绍玻璃钢雕塑奥特曼绵阳玻璃钢雕塑制作厂家松江区镜面玻璃钢雕塑在线咨询沈阳商场开业美陈温州玻璃钢雕塑摆件价格玻璃钢关羽人物雕塑怎么区分玻璃钢雕塑做工柳州商场美陈雕塑厂家浙江玻璃钢金属雕塑价格组合玻璃钢花盆贵州卡通玻璃钢造型雕塑制作许昌玻璃钢卡通雕塑厂家哪家好宿州景区玻璃钢雕塑厂家优惠的玻璃钢佛像雕塑贵阳玻璃钢花盆厂家批发安徽步行街玻璃钢雕塑图片玻璃钢雕塑彩绘福建玻璃钢雕塑制作厂家广东欧式玻璃钢雕塑供应商台州玻璃钢雕塑厂中山玻璃钢雕塑售后保障香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化