异常处理

什么是异常处理

- python解释器检测到错误,触发异常(也允许程序员自己触发了异常)

- 程序员编写特定的代码,专门用来捕捉这个异常(这段代码与程序逻辑无关,只与异常处理有关)

- 如果捕捉成功则进入另外一个处理分支,执行你为其定制的逻辑,使程序不会崩溃,这就是异常处理

异常处理的基本语法

try:
需要被检测的代码块
except 异常的类型:
try 中的代码一旦被检测到异常,就执行这个位置的逻辑

基本的异常处理模块:

while True:

    try:
# 代码块,逻辑
inp = input('请输入相应的数字:')
i = int(inp)
except IndexError as e:
# 检测到相应的错误类型并打印显示
print('IndexError',e)
except ValueError as e:
print('ValueError', e)
except Exception as e:
# Exception 可以捕获所有的错误
# e 是Exception的对象,对象中封装了对应的错误信息
# 上述代码块如果出现了错误,自动执行当前块的内容
print(e)
else:
print('输入正确')
finally:
print('重新开始')

主动触发异常:

try:
inp = int(input('请输入小于10的数字:'))
if inp > 10:
raise Exception('有错误...')
# 主动触发异常
except Exception as e:
# 其他错误异常
print(e)

自定义异常:

class MyError(Exception):
# 在MyError中定义自己的异常处理
def __init__(self,msg):
self.message = msg def __str__(self):
return self.message try:
raise MyError('出现错误...')
except MyError as e:
print(e) # e 对象的__str__方法,以获取返回

断言:

- assert + 条件,断言,用于强制用户服从

assert 1==2
# 如果条件不通过,即报错

try..except的方式比较if的方式的好处

- try..except这种异常处理机制就是取代if那种方式,让你的程序在不牺牲可读性的前提下增强健壮性和容错性

- 把错误处理和真正的工作分开来

- 代码更易组织,更清晰,复杂的工作任务更容易实现;

- 代码更安全了,不至于由于一些小的疏忽而使程序意外崩溃了

Python学习 :异常处理的更多相关文章

  1. python学习-异常处理

    小技巧 isinstance(obj,foo) 检查是否obj是否是类 foo 的对象 class Foo(object): pass obj = Foo() isinstance(obj, Foo) ...

  2. python 学习 异常处理

    异常处理实例 while True: num1 = input('num1:') num2 = input('num2:') try: num1 = int(num1) num2 = int(num2 ...

  3. python学习-异常处理之捕获异常与抛出异常(七)

    捕获异常 python完整的异常处理语法结构如下: 特别说明: 1.try块是必需的,except块和finally,当try块没有出现异常时,程序会执行else块 2.try块后只有一个except ...

  4. Python学习——异常处理

    1.异常基础: 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面 基本语法: try: pass except Exception as e: pri ...

  5. python学习笔记(六)文件夹遍历,异常处理

    python学习笔记(六) 文件夹遍历 1.递归遍历 import os allfile = [] def dirList(path): filelist = os.listdir(path) for ...

  6. 【python学习-6】异常处理

    最近在网上看到了一种学习方法名叫费曼学习法,说的是学习一个东西的时候,要尝试着给别人讲出来,就是一种备课式的学习. 第一步,选择一个你想要理解的概念, 然后拿出一张白纸, 把这个概念写在白纸的最上边. ...

  7. Python学习系列(九)(IO与异常处理)

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

  8. Python学习笔记之异常处理

    1.概念 Python 使用异常对象来表示异常状态,并在遇到错误时引发异常.异常对象未被捕获时,程序将终止并显示一条错误信息 >>> 1/0 # Traceback (most re ...

  9. Python学习进程(14)异常处理

        本节介绍Python进行异常处理的方式,异常处理机制可以帮助我们调试python程序.     (1)异常的简介:     异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行 ...

  10. Python学习笔记(五)——异常处理

    Python 异常总结 异常名称 解释 AssertionError 断言语句(assert)失败:当assert关键字后边的条件为假时,程序将抛出该异常,一般用于在代码中置入检查点 OSError ...

随机推荐

  1. EJB 官方API

    http://download.oracle.com/otndocs/jcp/ejb-3_0-fr-eval-oth-JSpec/

  2. .NET中怎么有效的使用Cache

    Cache 即高速缓存 ,我想非常多人对他的第一印象一定像我相同,感觉他一定能提高系统得性能和运行速度.的确.Net推出cache的初衷确实是这样的.那么cache是怎么提高系统性能和运行速度呢?是不 ...

  3. cp 复制不覆盖

    awk 'BEGIN { cmd="cp -ri a1/* a2/"; print "n" |cmd; }'

  4. Python实例---三级菜单的实现[low]

    # version: python3.2.5 # author: 'FTL1012' # time: 2017/12/7 09:16 menu = { '陕西': { '西安': { '未名区': [ ...

  5. 第六次作业——Excel制作工资表

  6. .NET Reflector注册问题

    reflector工具不错, 终于8.x了,也可以注册了,但是不小心注册成standard版本了,但vs中无法使用,于是各种删注册表,后来找到何英涛的解决方案 下面介绍一个Reflector很坑的一个 ...

  7. Windows 下的内存泄漏检测方法

    在 Windows 下,可使用 Visual C++ 的 C Runtime Library(CRT) 检测内存泄漏. 首先,我们在.c或.cpp 文件首行插入这一段代码: #define _CRTD ...

  8. js url传值中文乱码完美解决(JAVA)

    js url传值中文乱码完美解决(JAVA) 首先在你的jsp页面这样更改: var url="你要传入的Action的位置&ipid="+ipid+"& ...

  9. 使用Java语言开发机器学习框架和参数服务器

    https://github.com/wudikua/ps 本项目是我自己动手实现的机器学习训练框架,代码简单,有很多不完善,但是也保留了最小可用功能 通过自己编写这个项目,可以帮助自己入门机器学习 ...

  10. chrome浏览器Network面板请求Timing分析

    Timing显示资源在整个请求生命周期过程中各部分话费的时间. Queueing 排队的时间花费.可能由于该请求被渲染引擎认为是优先级比较低的资源(图片).服务器不可用.超过浏览器并发请求的最大连接数 ...