首页 > 编程语言 >Python异常处理

Python异常处理

时间:2024-11-15 14:19:52浏览次数:1  
标签:__ 自定义 Python CustomError except 处理 print 异常

六、异常处理

  1. 基本语法

    try:
        # 尝试运行的代码块
        result = 10 / 0
    except ZeroDivisionError as e:
        # 捕获 ZeroDivisionError 异常
        print("不能除以零!", e)
    except TypeError as e:
        print("类型错误!", e)
    except Exception as e:    # 这里可以捕获所有的错误 
        print("其他错误", e)
    else:
        # 如果没有异常发生,执行此代码块
        print("没有发生异常,结果是", result)
    finally:
        # 无论是否发生异常,都执行此代码块
        print("执行完成")
    
    
    • try:包含可能发生异常的代码。
    • except:处理特定的异常类型。如果except有一些错误不能捕捉,会直接抛出异常
    • else:当没有异常发生时执行的代码。
    • finally:无论是否发生异常都会执行,常用于资源清理(如关闭文件)。
  2. 捕获多个异常

    • 可以通过多个 except 块捕获不同的异常类型,也可以在一个 except 中捕获多个异常类型。

    • 例子

      try:
          result = int("string")  # 将字符串转换为整数
      except (ValueError, TypeError) as e:
          print("捕获 ValueError 或 TypeError 异常", e)
      
  3. 自定义异常

    • Python 允许创建自定义异常,通过继承内置的 Exception 类实现。自定义异常可以提供更详细的错误描述。

    • 例子

      class CustomError(Exception):
          """自定义异常类型"""
          def __init__(self, message):
              self.message = message
      
      try:
          raise CustomError("这是一个自定义错误")
      except CustomError as e:
          print("捕获自定义异常:", e) #捕获自定义异常: 这是一个自定义错误
      
    • print(e)的内容取决于什么?取决于构造函数的传参,

      class CustomError(Exception):
          """自定义异常类型"""
          def __init__(self, age, message):
              self.age = age
              self.m = message
              
      
      try:
          raise CustomError(10, "这是一个自定义错误")
      except CustomError as e:
          print("捕获自定义异常:", e)  # 捕获自定义异常: (10, '这是一个自定义错误')
      
    • 同时也可以用__str____repr__来控制输出。

      class CustomError(Exception):
          """自定义异常类型"""
          def __init__(self, age, message):
              self.age = age
              self.m = message
          def __str__(self) -> str:
              return f"亲,你遇到了一个自定义错误CustomError"
              
      
      try:
          raise CustomError(10, "这是一个自定义错误")
      except CustomError as e:
          print("捕获自定义异常:", e) # 捕获自定义异常: 亲,你遇到了一个自定义错误CustomError
      
  4. 忽略异常

    try:
        risky_operation()   # 可能发生错误的操作
    except:
        pass  # 不做任何处理,直接忽略错误
    

标签:__,自定义,Python,CustomError,except,处理,print,异常
From: https://www.cnblogs.com/ouyangxx/p/18547903

相关文章

  • python实现的扫雷游戏的AI解法(启发式算法)
    相关:python编写的扫雷游戏如何使用计算机程序求解扫雷游戏本文中实现的《扫雷》游戏的AI解法的项目地址:https://openi.pcl.ac.cn/devilmaycry812839668/AI_mine_game该项目的解法效果:之前介绍了网上的一些解决《扫雷》游戏的一些解法,包括DQN和启发式等AI算法,看着这......
  • python调用百度通用翻译API
    文章目录1.简介2.使用步骤3.api调用实现4.编码实现1.简介前段时间在做视频语音识别生成多语种字幕时,使用了百度翻译通用翻译api进行翻译。百度翻译平台经过个人认证之后,每月有200万字符的免费翻译额度。还是比较舒服的。百度翻译开放平台是百度翻译面向广大......
  • Python类
    五、类5.1定义类使用class关键字定义一个类,类名通常采用首字母大写的驼峰命名法classPerson:pass5.2构造函数基本语法classPerson:def__init__(self,name,age):#定义构造函数self.name=name#初始化name属性s......
  • Python开发环境搭建(PyCharm+Anaconda+Git+Gitee)
    一、Anaconda介绍1.1为什么选择Anaconda?Anaconda是一个开源的Python发行版本,主要用于数据科学和机器学习,它包含了Python、conda以及众多工具和库,让我们可以轻松的构建和管理python虚拟环境,方便的进行python项目开发。下面是选择Anaconda的理由:安装简单方便便捷的Python虚拟......
  • 【第二章】Python基础之内建常用数据类型与数值型
    内建常用数据类型分类数值型  int、float、complex、bool序列sequence  字符串str、字节序列bytes、bytearray  列表list、元组tuple键值对  集合set、字典dict数值型int、float、complex、bool都是class,1、5.0、2+3j都是对象即实例int:   ......
  • python编写的扫雷游戏
    使用python语言编写的命令行方式的交互的《扫雷》游戏:importnumpyasnpimportrandomfromtypingimportListH=36W=64defbelong_to(h,w,H=H,W=W):near=[]foriinrange(h-2,h+3):forjinrange(w-2,w+3):ifi>=0andj......
  • Python-django-flask游戏虚拟物品道具商城管理系统
    文章目录项目介绍系统开发技术路线具体实现截图开发技术django项目代码结构参考解析论文大纲目录参考核心代码部分展示源码/演示视频获取方式项目介绍游戏虚拟物品管理系统的主要使用者分为管理员和用户,实现功能包括管理员:首页、个人中心、用户管理、游戏虚拟物品......
  • 李沐《动手学深度学习》kaggle树叶分类(ResNet18无预训练)python代码实现
    前言    在尝试这个树叶分类之前,作者仅仅看完了ResNet残差网络一章,并没有看后面关于数据增强的部分,这导致在第一次使用最原始的ResNet18直接跑完训练数据之后的效果十分的差,提交kaggle后的准确仅有20%左右。本文最后依然使用未经预训练的手写ResNet18网络,但做了一定的......
  • Python小白学习教程从入门到入坑------第三十二课 生成器(语法进阶)
    目录一、生成器generator1.1生成器表达式1.1.1表达式一1.1.2表达式二二、可迭代对象、迭代器、生成器三者之间的关系2.1定义与特性2.2关系与区别一、生成器generator在Python中,生成器(Generators)是一种用于迭代对象的特殊类型函数。它们允许你生成一个序列......
  • Python小白学习教程从入门到入坑------第三十一课 迭代器(语法进阶)
    目录一、可迭代对象Iterable1.1可迭代对象的条件1.2for循环工作原理1.3isinstance()二、迭代器 Iterator2.1 __iter__() 和 __next__()2.2 可迭代对象&迭代器2.2.1定义与特性2.2.2 关系与转换2.2.3应用场景三、迭代器协议(了解即可)四、自定义迭代器类......