python 异常处理 try except

Bill78 等级 381 0 0

什么是异常

异常就是程序运行时发生错误的信号,程序随即发生终止行为

常见的异常有哪些

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x
IOError 输入/输出异常;基本上是无法打开文件
ImportError 无法引入模块或包;基本上是路径问题或名称错误
IndentationError 语法错误(的子类) ;代码没有正确对齐
IndexError 下 标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
KeyError 试图访问字典里不存在的键
KeyboardInterrupt Ctrl+C被按下
NameError 使用一个还未被赋予对象的变量
SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)
TypeError 传入对象类型与要求的不符合
UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,
导致你以为正在访问它
ValueError 传入一个调用者不期望的值,即使值的类型是正确的

异常的类型

常见的有语法错误 (语法错误需要在 python 执行前改正)

逻辑错误

常见的异常的处理 方式

# 语法结构一

try:

被检测的代码块

except 异常类型:

try 中一旦检测到异常,就执行这个位置的逻辑

示列

try:
    f1 = open('test.txt')
    g = (line.strip() for line in f1)
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
except StopAsyncIteration:
    f1.close()

读取test.txt 文件中的文件,当检测到异常,就抛出 StopAsyncIteration,然后关闭文件

# 语法结构二

# 多分支

s1 = 'hello python'
try:
    int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e)

#语法结构三 万能的异常

s1 = 'hello Python'
try:
    int(s1) except Exception as e: print(e)

# 语法结构三 多分支异常 新增 Exception

s1 = 'hello python'
try:
    int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) except Exception as e: print(e)

# 语法结四 当try 的时候没有异常时执行 else ,无论是否异常都执行 finally

s1 = 100
try:
    int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) else: print('try内代码块没有异常则执行我') finally: print('无论异常与否,都会执行该模块,通常是进行清理工作')

主动触发异常

try:
    raise TypeError('类型错误')
except Exception as e:
    print(e)

本文转自 https://www.cnblogs.com/brave1/p/10252739.html,如有侵权,请联系删除。

收藏
评论区

相关推荐

使用synchronized关键字封装一个锁
代码如下: public class Lock { private boolean isLocked false; public void lock() { synchronized (this) { while (isLocked) { try {
Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和Mac OS X系统中安装使用。 安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
python中的异常处理
异常 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常种类   在python中不同的异常可以用不同的类型(python
python装饰器详解
你会Python嘛? 我会! 那你给我讲下Python装饰器吧! Python装饰器啊?我没用过哎 以上是我一个哥们面试时候发生的真实对白。 \分割线
原来Python绘图也可以这么漂亮,这次真的是学习到了!
(https://imghelloworld.osscnbeijing.aliyuncs.com/8830803f033eeed85783e9058cf08968.png) 作者:朱小五 来源:快学Python 👆人生苦短,快学Python! 最近看了一篇文章《一个牛逼的Python 可视化库:PyG2Plot》,可惜只是简单介
python 异常处理 try except
什么是异常 异常就是程序运行时发生错误的信号,程序随即发生终止行为 常见的异常有哪些 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationEr
知乎从Python转为Go,是不是代表Go比Python好?
众所周知,知乎早在几年前就将推荐系统从 Python 转为了 Go。于是乎,一部分人就说 Go 比 Python 好,Go 和 Python 两大社区的相关开发人员为此也争论过不少,似乎,谁也没完全说服谁。 知乎从Python转为Go,是不是代表Go比Python好?我认为,各有优点,谁也取代不了谁,会长期共存! “由 Python 语言转向 Go 语言
Python编程基础(快速入门必看
Python编程基础一、Python语言基本语法 Python是一
检测xposed框架实现
1.检测安装包名java private static int l(Context context) { int i 0; PackageManager packageManager context.getPackageManager(); try { packageMan
python文件的第一行 #!/usr/bin/python3 是什么意思?
python文件的第一行代码通常在脚本语言的第一行会看到: !/usr/bin/env python或 !/usr/bin/python 首先要确定的一点是它不是注释。这两句话的目的都是指出你的python文件用什么可执行程序去运行它。1. !/usr/bin/python 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释
Java中的异常丢失与异常链
1. 异常丢失 1.1 在finally子句中抛出异常。package person.xsc.datamanage;class MyException1 extends Exception public String toString()return "测试异常————test1";class MyException2 extends Exception
Python初学者必备书籍《Python入门经典》高清PDF版|百度网盘免费下载|Python初学者,自学Python必读
提取码:1028以及前文提到的学习路线图内容简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python入门经典》是面向Python初学者的学习指南,详细介绍了Python编程基础,以及一些高级概念,如面向对象编程。全书分为24章。第1章介绍了Python的背景和安装方法。第2章
浅析常用的Python Web的几大框架
在各种语言平台中,python涌现的web框架恐怕是最多的,是一个百花齐放的世界,各种microframework、framework不可胜数;猜想原因应该是在python中构造框架十分简单,使得轮子不断被发明。所 以在Python社区总有关于Python框架孰优孰劣的话题。下面就给大家介绍一下python的几大框架: Django Django 应该是最出
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
一篇文章带你弄懂Python异常传递和自定义异常
大家好,我是Go进阶者,今天给大家分享一些Python基础 (异常传递和自定义异常),上篇文章有说到:,这篇文章一起来看看异常其他知识吧一、异常的传递 1\. try嵌套中import timetry: f open('test.txt') try: while True: content f.readli