首页 > 编程语言 >如何系统的学习Python——异常处理

如何系统的学习Python——异常处理

时间:2024-03-13 14:58:06浏览次数:15  
标签:try Python except else 学习 result print 异常

异常处理是在程序执行期间检测到的错误或异常情况的处理过程。在Python中,异常由 try, except, elsefinally 语句来处理。以下是一个简单的介绍:

1. tryexcept 块:

try:
    # 可能会引发异常的代码块
    result = 10 / 0  # 除零异常
except ZeroDivisionError:
    # 处理特定类型的异常
    print("Cannot divide by zero!")
except Exception as e:
    # 处理其他异常
    print(f"An error occurred: {e}")
  • try 块包含可能引发异常的代码。
  • except 块用于捕获并处理特定类型的异常。可以有多个 except 块,每个用于处理不同类型的异常。
  • as 关键字用于将异常对象赋给变量。

2. else 块:

try:
    result = 10 / 2
except ZeroDivisionError:
    print("Cannot divide by zero!")
else:
    print(f"Result: {result}")
  • else 块在 try 块没有引发异常时执行。

3. finally 块:

try:
    result = 10 / 2
except ZeroDivisionError:
    print("Cannot divide by zero!")
else:
    print(f"Result: {result}")
finally:
    print("This will always be executed.")
  • finally 块中的代码总是会执行,无论是否发生异常。

4. 自定义异常:

class MyCustomError(Exception):
    def __init__(self, message="This is a custom error."):
        self.message = message
        super().__init__(self.message)

try:
    raise MyCustomError("This is a custom exception.")
except MyCustomError as e:
    print(f"Caught an exception: {e}")
  • 自定义异常类需要继承自 Exception 类。
  • raise 语句用于引发异常。

5. 多个异常:

try:
    result = 10 / 0
except (ZeroDivisionError, ArithmeticError) as e:
    print(f"An error occurred: {e}")
  • 多个异常可以放在一个 except 块中,用元组表示。

6. 异常的传递:

异常可以在调用堆栈中传递,可以在不同的代码块中捕获和处理。

def func1():
    raise ValueError("This is a value error.")

def func2():
    try:
        func1()
    except ValueError as e:
        print(f"Caught an exception in func2: {e}")

func2()

这些是Python中的异常处理的基本概念和语法。合理的异常处理是写健壮代码的关键,它可以提高程序的可维护性和可靠性。

标签:try,Python,except,else,学习,result,print,异常
From: https://blog.csdn.net/SmiledrinkCat/article/details/136435915

相关文章

  • Spring学习
    目录Spring13、HelloSpring4、IOC创建对象方式5、Spring配置Spring2Spring3单例模式(面试)Spring4使用Java来配置beanpojo类包config包1+(1+3)@Component+(@Configuration+@Bean)1+(2+3)@Component+(@ComponentScan+@bean)1+(3)@Component+(@bean)(2+3)(@ComponentScan+@bean)(1+3)(@Configur......
  • springboot/java/php/node/python企业微培训小程序【计算机毕设】
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着科技的迅猛发展,移动互联网已成为企业培训的新阵地。传统的面对面培训模式因其时间、地点的限制性逐渐显得不够灵活,而小程序作为一种轻量级的应用,能够......
  • 使用@FeignClient中的fallback属性处理接口调用异常问题
    说明当使用feign远程调用接口是,如果接口返回异常或者超时时,我们可以统一返回异常信息,这样调用者就不用再显式的try-catch处理异常了开启接口fallback处理想要使用fallback处理接口异常须在配置文件开启feign:hystrix:enabled:true定义feign接口在@FeignClient上......
  • 4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕
    4.MAC平台Python的下载、安装(含Python2.7+Python3.12双版本环境变量配置)——《跟老吕学Python编程》)——跟老吕学Python编程一、下载MAC版Python1.Python官网2.MAC版Python下载网址二、在MAC安装Python1.在MAC安装Python2.阅读Python重要信息3.同意Python许可4.确认同意......
  • 数据结构与算法学习(01)交换函数的指针陷阱
    先看以下正确的例子 voidswap(int*px,int*py){inttemp;temp=*px;/*间接取*/*px=*py; /*间接取,间接存*/*py=temp; /*间接存*/}int main(void){inta=2,b=3;swap(&a,&b);printf("a=%d,b=%d",a,b);return......
  • 黑马程序员JavaWeb(2023)课程学习过程中会遇到的操作小问题
    问题一:根据视频创建好的vue项目框架,在下次打开该项目时,在左下角未显示"EMP脚本",此时解决办法如下解决方法1:首先检查下图所示指向位置是否打勾(点击资源管理器右侧的三点),若没有勾上,勾上后即可看到左下角出现"EMP脚本"解决方法2:点击一下项目里面的package.json(如下图),即可解决......
  • Linux学习(十二)基础服务_DNS
    一、DNS原理查询方式递归查询直接把结果给客户端迭代查询如果知道结果,把结果告诉客户端,如果不知道结果,会把查询转发到下一台DNS服务器DNS解析类型SOA记录:起始授权记录  NS记录:指定管理某一个域的服务器是谁子域授权  A记录:正向解析,把域名解析......
  • Android Studio开发学习(一)———下载安装
    AndroidStudio版本:android-studio-2023.2.1.23-windows安装AndroidStudio官网下载   androidstudio官网安装AndroidStudio在安装目标盘创建文件夹,不要有中文文件夹,文件夹名称不要带空格。本次安装在VMware虚拟机中安装,只有一个C盘,无其他盘,所以自定义安装目录都在C......
  • MongoDB学习总结
    一、数据库基础命令1、关于database的基础命令查看所有的数据库:showdbs/showdatabases切换数据库:usedb_name查看当前的数据库:db删除当前的数据库:db.dropDatabase()2、关于集合的基础命令不手动创建集合:向不存在的集合中第一次加入数据时,集合会被创建出来手动创建集合......
  • C语言入门学习 --- 7.结构体
    文章目录第七章结构体1.结构体的声明1.1结构的基础知识1.2结构的声明1.3结构成员的类型1.4结构体变量的定义和初始化2.结构体成员的访问2.1结构体变量访问成员2.2结构体指针访问指向变量的成员3.结构体传参配套练习:第七章结构体1.结构体类型的声明2.结构体初始......