python 异常处理 try except

Bill78 等级 705 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,如有侵权,请联系删除。

收藏
评论区

相关推荐

python 异常处理 try except
什么是异常 异常就是程序运行时发生错误的信号,程序随即发生终止行为 常见的异常有哪些 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常;基本上是无法打开文件 ImportError 无法引入模块或包;基本上是路径问题或名称错误 IndentationEr
Java中的异常丢失与异常链
1. 异常丢失 1.1 在finally子句中抛出异常。package person.xsc.datamanage;class MyException1 extends Exception public String toString()return "测试异常————test1";class MyException2 extends Exception
一篇文章带你弄懂Python异常传递和自定义异常
大家好,我是Go进阶者,今天给大家分享一些Python基础 (异常传递和自定义异常),上篇文章有说到:,这篇文章一起来看看异常其他知识吧一、异常的传递 1\. try嵌套中import timetry: f open('test.txt') try: while True: content f.readli
Java笔试面试总结—try、catch、finally语句中有return 的各类情况
### 前言 之前在刷笔试题和面试的时候经常会遇到或者被问到 **try-catch-finally** 语法块的执行顺序等问题,今天就抽空整理了一下这个知识点,然后记录下来。 ### 正文 本篇文章主要是通过举例的方式来阐述各种情况,我这里根据 try-catch-finally 语法块分为两种大情况讨论:try-catch 语法块和 try-cat
PHP 异常处理
// 报错, 扑捉不到异常 // try { // require ('test_try_catch.php'); // } catch (Exception $e) { // echo $e->getMessage(); // } // 可以扑捉到异常 tr
CGAL Python Bindings
CGAL Python Bindings -------------------- **WARNING**: This project(**[http://cgal-python.gforge.inria.fr/](https://www.oschina.net/action/GoToLink?url=http%3A%2F%2Fcgal-python.gf
CentOS升级Python到2.7版本
查看python的版本 python -V Python 2.4.3 1.先安装GCC yum -y install gcc 2.下载Python-2.7.2 wget http://python.org/ftp/python/2.7.2/Python-2.7.2.tar.bz2 3.解压Python-2.7.2
FreeBSD python安装MySQL
fetch https://pypi.python.org/packages/source/M/MySQL-python/MySQL-python-1.2.4.zip unzip MySQL-python-1.2.4.zip cd MySQL-python-1.2.4 python setup.py install ln -s /usr/loca
Python3+Gurobi使用教程(一)
Gurobi使用教程 ---------- ###1.Gurobi使用的一般框架 from gurobipy import * try: m=Model('modelname') except GurobiError: print('Error reported')
Python—语法基础(8) 分支、循环结构
分支紧凑格式:<表达式1> if <条件> else <表达式2> # 分支结构 if <条件1> : <语句块1> elif <条件2> : <语句块2> …… else : <语句块N> # 异常处理 try :
Python从入门到入土
### 异常处理try except 在Python中,异常处理,主要是try except语句,通常语法格式如下. try: 代码块1 except Exception as e: print(e) 代码2 try语句按照如下方式工作; * 首先,执行try子句(在关键字try和关键字except之间的语句) * 如果没有异常
Python进阶丨如何创建你的第一个Python元类?
> **摘要:**通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。 Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念: * * 什么是Python元类?
Try .NET & Github Gist
[Try .NET](https://www.oschina.net/action/GoToLink?url=https%3A%2F%2Fdotnet.microsoft.com%2Fplatform%2Ftry-dotnet) -----------------------------------------------------------------
try
在 Java 语言中 try-catch-finally 看似简单,一副人畜无害的样子,但想要真正的“掌控”它,却并不是一件容易的事。别的不说,咱就拿 fianlly 来说吧,别看它的功能单一,但使用起来却“暗藏杀机”,若您不信,咱来看下面的这几个例子... 坑1:finally中使用return -------------------