浅谈python抛出异常、自定义异常, 传递异常

作者:hebedich 时间:2022-12-22 00:49:31 

一. 抛出异常

Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。

raise 语句

Python中的raise 关键字用于引发一个异常,基本上和C#和Java中的throw关键字相同,如下所示:


import traceback

def throw_error():
 raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
 print("飞天猪")

throw_error()

#运行结果:


'''Traceback (most recent call last):
File "C:\Users\Administrator\Desktop\systray.py", line 7, in <module>
 throw_error()
File "C:\Users\Administrator\Desktop\systray.py", line 4, in throw_error
 raise Exception("抛出一个异常")#异常被抛出,print函数无法执行
Exception: 抛出一个异常'''

raise关键字后面是抛出是一个通用的异常类型(Exception),一般来说抛出的异常越详细越好

二.传递异常:

捕捉到了异常,但是又想重新引发它(传递异常),可以使用不带参数的raise语句即可:


class MufCalc(object):
 m = False
 def calc(self,exp):
   try:
     return eval(exp)
   except ZeroDivisionError:
     if self.m:
       print("cool")
     else:
       raise

app = MufCalc()
app.calc(2/0)

三.自定义异常类型

Python中也可以自定义自己的特殊类型的异常,只需要要从Exception类继承(直接或间接)即可:


class MyError(Exception):
 pass
标签:python,抛出异常,自定义异常,传递异常
0
投稿

猜你喜欢

  • 微信小程序位置授权处理方法

    2024-06-10 08:21:05
  • python3中TQDM库安装及使用详解

    2023-02-17 20:05:55
  • python接口调用已训练好的caffe模型测试分类方法

    2021-08-11 18:31:04
  • Python Asyncio中Coroutines,Tasks,Future可等待对象的关系及作用

    2021-02-09 02:01:47
  • ASP.NET 2.0中的数据操作之九:跨页面的主/从报表

    2023-07-19 20:28:42
  • Python深入学习之对象的属性

    2022-11-17 03:47:34
  • jQuery判断checkbox选中状态

    2024-04-22 22:33:18
  • Python遗传算法Geatpy工具箱使用介绍

    2021-11-02 02:21:16
  • 解决pandas使用read_csv()读取文件遇到的问题

    2021-08-29 18:31:02
  • python实现提取百度搜索结果的方法

    2021-05-13 20:27:21
  • Pycharm连接远程服务器并实现远程调试的实现

    2024-01-03 06:25:05
  • 通过python顺序修改文件名字的方法

    2023-05-20 08:05:29
  • 详解Go程序添加远程调用tcpdump功能

    2024-05-21 10:18:45
  • MySQL中datetime和timestamp的区别及使用详解

    2024-01-19 05:58:28
  • python爬取内容存入Excel实例

    2022-06-05 16:31:47
  • tensorflow 保存模型和取出中间权重例子

    2021-05-11 07:30:11
  • anaconda python3.8安装后降级

    2021-09-12 05:28:51
  • python字符串操作详析

    2022-09-14 04:57:08
  • 详解如何在Go项目中输出版本信息

    2024-04-26 17:17:20
  • Python去除PDF水印的实现示例

    2022-08-13 19:26:45
  • asp之家 网络编程 m.aspxhome.com