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 异常处理


# 结构一:单分支

try:
    num = int(input('请输入数字:'))  # 出现ValueError错误之后,不执行下面语句,直接跳转到except语句.
    print(num)
    print('Hello World')
except ValueError:
    print('您输入含有不是数字的字符了')

print('到这里了')

# 结构二:多分支,哪个类型报错了就停在那,不执行try下面的代码,执行错误类型的代码except

try:
    num = int(input('请输入数字:'))
    print(num)
    dic = {'name': 'albert'}
    print(dic['age'])
    print('Hello World')
    lst = [i for i in range(10)]
    print(lst[101])
    print(777)
except ValueError:
    print('您输入含有不是数字的字符了')
except KeyError:
    print('此键不存在!!')
except IndexError:
    print('超出列表下标!!')

print('到这里了-2')

# 结构三:万能异常Exception,能处理Python所有出现的异常
try:
    dic = {'name': 'albert'}
    print(dic['age'])
    print('Hello World')
    lst = [i for i in range(10)]
    print(lst[101])
    print(777)
except Exception:
    print('出现错我啦')

# 或者这样 把错误类型打印出来
try:
    lst = [i for i in range(10)]
    print(lst[101])
    dic = {'name': 'albert'}
    print(dic['age'])
    print('Hello World')
    print(777)
except Exception as e:
    print(e)  # list index out of range

"""
什么时候用万能? 什么时候用多分支?
如果你对错误信息不关心,只是想要排除错误让程序继续运行>>>用万能异常.
你对错误信息要进行明确的分流,让你的程序多元化开发>>>用分支异常
"""

# 结构四: 多分支+万能异常

def func():
    pass


def func1():
    pass


dic = {
    1: func,
    2: func1}

try:
    num = int(input('请输入序号'))
    dic[num]()
except ValueError:
    print('请输入数字')
except KeyError:
    print('请输入范围内的序号')
except Exception:
    print('程序出现意料之外的错误....')


# 结构五: try else finally
"""
except 必须依赖于try, else必须依赖于except和try
finally只是依赖于try.
"""
try:
    dic = {'name': 'albert'}
    print(dic['age'])
    l1 = [1, 2]
    print(l1[100])
    print(111)
except KeyError:
    print('没有此键')
except IndexError:
    print('没有此下标')
else:
    # 如果没有出现异常才会执行else
    print('没出现错误啊,good')
finally:
    # 无论异常与否, 都会执行finally, 通常是进行清理工作
    print('finally 666')


# finally : 在异常出现之前,执行finally语句.
"""
1、finally 用在 关闭数据库连接,文件句柄关闭,数据保存等
2、在return结束函数之前,执行finally代码.
"""
try:
    dic = {'name': '嘉欣'}
    print(dic['age'])
    l1 = [1, 2]
    print(l1[100])

finally:
    print('finally 777')


def func():
    try:
        print(111)
        return 666
    finally:
        print(222)

print(func())


# 结构六: 主动触发异常.
raise ValueError('出现了value错误')


# 结构七: 断言: assert+条件 , 展现出一种强硬的态度.
assert 1 == 2
print(111)

# 结构八:自定义异常 ,python中给你提供的错误类型很多,但是不是全部的错误.

class MyError(BaseException):

    def __init__(self,msg):
        self.msg=msg
    def __str__(self):
        return self.msg

try:
    raise MyError('类型错误')
except MyError as e:  # e = MyError('类型错误')
    print(e)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:24:55  更:2022-03-08 22:25:20 
 
开发: 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/15 22:54:54-

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