异常对象 | Python从入门到精通:高阶篇之四十二

简介: 本节主要是介绍如何捕获异常对象,except直接捕获所有的异常,或者是except 异常类型 as 异常名,捕获具体的异常类型。

异常传播 | Python从入门到精通:高阶篇之四十一

异常对象

我们如何去捕获到异常呢?
我们来通过代码分析一下:

print('异常出现前')

print(10/0)

print('异常出现后')

执行结果:

image.png

我们之前是如何处理这些异常的呢?

print('异常出现前')

try:
    print(10/0)
except:
    print('处理异常的代码~~~')

print('异常出现后')

执行结果:

image.png

在捕获异常对象之前,我们还需要知道一点。
如果except后不跟任何的内容,则此时它会捕获到所有的异常。
如果在except后跟着一个异常的类型,那么此时它只会捕获该类型的异常。

print('异常出现前')

try:
    # print(c)
    print(10/0)
except NameError:
    print(''出现 NameError 异常'')

print('异常出现后')

执行结果:

image.png
image.png

此时可以发现,注释掉print(c)之后,程序会出错,只能解决NameError的异常。如果要想解决print(10/0)的异常,可以再添加一个ZeroDivisionError的异常:

except ZeroDivisionError:
    print('出现 ZeroDivisionError 异常')

执行结果:

image.png

此时发现两个异常都解决了,但是如果现在添加了一个l = []

l = []

try:
    l[10]

执行结果:

image.png

此时没有捕获异常,我们来添加一下:

except IndexError:
    print('出现 IndexError 异常')

except:
    print('未知异常')

执行结果:

image.png

我们再添加一个异常代码:

1 + 'hello'

执行结果:

image.png

except:except Exception:效果一样,所以可以省略不写。
Exception 是所有异常类的父类,所以如果except后跟的是Exception,他也会捕获到所有的异常,可以在异常类后边跟着一个 as xx 此时xx就是异常对象。

except Exception as e :
    print('未知异常',e)

执行结果:

image.png

我们来看一下e的类型:

    print('未知异常',e,type(e))

执行结果:

image.png

在异常处理过程中,除了以上的语句之外,还可以添加finally。我们在后面添加finally语句。

print('异常出现前')
l = []
try:
    print(10/2)
except NameError:
    print('出现 NameError 异常')
except ZeroDivisionError:
    print('出现 ZeroDivisionError 异常')
except IndexError:
    print('出现 IndexError 异常')
except Exception as e :
    print('未知异常',e,type(e))
finally :
    print('无论是否出现异常,该子句都会执行')

print('异常出现后')

执行结果:

image.png

修改:

    print(10/0)

执行结果:

image.png

此时处理异常的语句可改为:

 try语句
        try:
            代码块(可能出现错误的语句)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        except 异常类型 as 异常名:
            代码块(出现错误以后的处理方式)
        else:
            代码块(没出错时要执行的语句) 
         finally:
            代码块(该代码块总会执行)  
 
         try是必须的 else语句有没有都行
        except和finally至少有一个    

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
1天前
|
缓存 算法 数据处理
Python入门:9.递归函数和高阶函数
在 Python 编程中,函数是核心组成部分之一。递归函数和高阶函数是 Python 中两个非常重要的特性。递归函数帮助我们以更直观的方式处理重复性问题,而高阶函数通过函数作为参数或返回值,为代码增添了极大的灵活性和优雅性。无论是实现复杂的算法还是处理数据流,这些工具都在开发者的工具箱中扮演着重要角色。本文将从概念入手,逐步带你掌握递归函数、匿名函数(lambda)以及高阶函数的核心要领和应用技巧。
Python入门:9.递归函数和高阶函数
|
1天前
|
开发者 Python
Python入门:8.Python中的函数
### 引言 在编写程序时,函数是一种强大的工具。它们可以将代码逻辑模块化,减少重复代码的编写,并提高程序的可读性和可维护性。无论是初学者还是资深开发者,深入理解函数的使用和设计都是编写高质量代码的基础。本文将从基础概念开始,逐步讲解 Python 中的函数及其高级特性。
Python入门:8.Python中的函数
|
1天前
|
存储 SQL 索引
Python入门:7.Pythond的内置容器
Python 提供了强大的内置容器(container)类型,用于存储和操作数据。容器是 Python 数据结构的核心部分,理解它们对于写出高效、可读的代码至关重要。在这篇博客中,我们将详细介绍 Python 的五种主要内置容器:字符串(str)、列表(list)、元组(tuple)、字典(dict)和集合(set)。
Python入门:7.Pythond的内置容器
|
1天前
|
存储 索引 Python
Python入门:6.深入解析Python中的序列
在 Python 中,**序列**是一种有序的数据结构,广泛应用于数据存储、操作和处理。序列的一个显著特点是支持通过**索引**访问数据。常见的序列类型包括字符串(`str`)、列表(`list`)和元组(`tuple`)。这些序列各有特点,既可以存储简单的字符,也可以存储复杂的对象。 为了帮助初学者掌握 Python 中的序列操作,本文将围绕**字符串**、**列表**和**元组**这三种序列类型,详细介绍其定义、常用方法和具体示例。
Python入门:6.深入解析Python中的序列
|
1天前
|
知识图谱 Python
Python入门:4.Python中的运算符
Python是一间强大而且便捷的编程语言,支持多种类型的运算符。在Python中,运算符被分为算术运算符、赋值运算符、复合赋值运算符、比较运算符和逻辑运算符等。本文将从基础到进阶进行分析,并通过一个综合案例展示其实际应用。
|
1天前
|
程序员 UED Python
Python入门:3.Python的输入和输出格式化
在 Python 编程中,输入与输出是程序与用户交互的核心部分。而输出格式化更是对程序表达能力的极大增强,可以让结果以清晰、美观且易读的方式呈现给用户。本文将深入探讨 Python 的输入与输出操作,特别是如何使用格式化方法来提升代码质量和可读性。
Python入门:3.Python的输入和输出格式化
|
1天前
|
存储 Linux iOS开发
Python入门:2.注释与变量的全面解析
在学习Python编程的过程中,注释和变量是必须掌握的两个基础概念。注释帮助我们理解代码的意图,而变量则是用于存储和操作数据的核心工具。熟练掌握这两者,不仅能提高代码的可读性和维护性,还能为后续学习复杂编程概念打下坚实的基础。
Python入门:2.注释与变量的全面解析
|
1天前
|
机器学习/深度学习 人工智能 算法框架/工具
Python入门:1.Python介绍
Python是一种功能强大、易于学习和运行的解释型高级语言。由**Guido van Rossum**于1991年创建,Python以其简洁、易读和十分工程化的设计而带来了庞大的用户群体和丰富的应用场景。这个语言在全球范围内都被认为是**创新和效率的重要工具**。
Python入门:1.Python介绍
|
4天前
|
数据库 Python
[oeasy]python066_如何捕获多个异常_try_否则_else_exception
本文介绍了Python中`try...except...else`结构的使用方法。主要内容包括: 1. **回顾上次内容**:简要复习了`try`和`except`的基本用法,强调了异常处理的重要性。 2. **详细解释**: - `try`块用于尝试执行代码,一旦发现错误会立即终止并跳转到`except`块。 - `except`块用于捕获特定类型的异常,并进行相应的处理。 - `else`块在没有异常时执行,是可选的。 3. **示例代码**:通过具体例子展示了如何捕获不同类型的异常(如`ValueError`和`ZeroDivisionError`),并解释了异常处理
35 24
|
7天前
|
人工智能 Shell 开发工具
[oeasy]python065python报错怎么办_try_试着来_except_发现异常
本文介绍了Python中处理异常的基本方法,重点讲解了`try`和`except`的用法。通过一个计算苹果重量的小程序示例,展示了如何捕获用户输入错误并进行处理。主要内容包括: 1. **回顾上次内容**:简要回顾了Shell环境、Python3游乐场和Vim编辑器的使用。 2. **编写程序**:编写了一个简单的程序来计算苹果的总重量,但发现由于输入类型问题导致结果错误。 3. **调试与修正**:通过调试发现输入函数返回的是字符串类型,需要将其转换为整数类型才能正确计算。
48 32

热门文章

最新文章

推荐镜像

更多