IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 零基础学Python——异常 -> 正文阅读

[Python知识库]零基础学Python——异常

一.异常

1.异常介绍

当python无法正常处理程序时就会发生一个异常,会影响程序的正常执行。异常也是python对象,表示一个错误。

2.异常捕获

当python脚本有发生异常的可能时,就需要捕获异常,避免程序终止执行。

(1)语法:

try:
    正常程序执行此代码块
except:
    抛出错误执行此代码块

(2)练习:将以下代码进行异常捕获;当代码异常时,将 ipt 赋值为1。

ipt = input("请输入:")
ipt = float(ipt)
print(ipt)

代码如下:

try:
    # 正常程序时执行代码块
    ipt = input("请输入:")
    ipt = float(ipt)
    print(ipt)

except:
    # 异常程序时执行代码块
    ipt = 1
    print(ipt)

3.异常类型捕获

但是仅仅使用以上异常捕获,虽然不会报错终止程序。但是无法记录下具体异常种类。如需记录下具体异常种类,则需要捕获该具体异常。

(1)语法:

try:
    pass
except 当前异常对象 as e:  # e = 当前异常对象 
    print(e)   			  

(2)练习:捕获以下代码的异常类型并输出

li = [1, 2, 3]
li[3]  # IndexError

代码如下:

try:
    li = [1, 2, 3]
    li[3]  # IndexError
except IndexError as e:  
    print(e)           # list index out of range

需要注意的是,该捕获方式仅能捕获 IndexError 这一类异常。那么实际上,这种细分的异常种类有很多,可以通过其共同父类 Exception 捕获输出。

try:
    # li = [1,2,3]
    # li[3]
    int('a')
except Exception as e:
    print(e)   		   # invalid literal for int() with base 10: 'a'

4.try - except - else

(1)如果抛出异常执行 except 内部代码;

(2)如果程序正常,执行else内部代码。

5.try - finally

不管程序有无发生异常,都将执行 finally 内部代码。

6.主动触发异常

在实际开发中,在程序不满足某条件时,通常会主动抛出异常。

(1)语法:

raise Exception()

(2)练习:判断煎饼熟了吗,当烹饪时间小于5时,则主动触发没熟异常;否则熟了。

def test(level):
    if level<5:
        raise Exception("没熟没熟")


try:
    test(5)               
except Exception as e:
    print(e)             
else:
    print("熟了 请吃")    

7.自定义异常

当需要自定义满足一些规则时,就可以自定义异常。

自定义异常通过创建一个新的异常类,自定义名字与内容,并且需要继承 Exception 类实现。

练习:

class QianAnError(Exception):
    def __init__(self,msg):
        self.message = msg

    def __str__(self):
        return self.message


e = QianAnError("自定义异常")
print(e)

try:
    raise QianAnError("自定义异常")    
except QianAnError as e:
    print(e) 

8.断言

assert断言用于判断一个表达式,当表达式条件为 False 时触发断言异常 AssertionError。

语法:

assert 断言

?注意:断言用于强制用户服从,可捕获,但是一般不捕获。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:15:03  更:2021-12-15 18:17:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 5:31:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码