Python 异常处理

异常的语法:

try:              # try下面的语句块执行出现异常,才会执行except下面的语句块
    ....
except:
    ....
try:              # <name>表示异常名,我们可以指定出现什么异常就执行什么样的语句块,可以有多个except进行匹配
    ....
except <name>:
    ....
try:              # e 表示异常的详细信息,我们可以通过 print(e) 来查看异常的信息
    ....
except <name>, e:
    print(e)
try:              # 无论 try 下面的语句块执行是否正常,都会执行 finally 下面的语句块
    ....
except:
    ....
finally:
    ....
try:              # 只有 try 下面的语句块执行正常,才会执行 else 下面的语句块
    ....
except:
    ....
else:        
    ....
finally:
    ....


例子:

import sys
import time 

try:
    time.sleep(60)
except KeyboardInterrupt:
    print("User Press Ctrl+C, Exit")
    sys.exit()


常见的异常:

SyntaxError语法错误
IndexError索引超出序列范围
KeyError请求一个不存在的字典关键字
NameError尝试访问一个没有声明的变量
IndentationError缩进错误,即代码没有正确对齐
ImportError无法引入模块或包,可能路径不存在
IOError输入输出错误,比如你要读的文件不存在
UnboundLocalError试图访问一个还未被设置的局部变量,例子
ValueError传给函数的参数类型不正确,比如给int()函数传入字符串
AttributeError尝试访问未知的对象属性,比如 os.path.abcd() 中是没有 abcd() 这个函数的
KeyboardInterrupt键盘中断,即我们按 Ctrl + C 就会出现这个异常

 

 

 

 

 

 

    

 

 

 

 

 

 

 

 

如何自定义异常:

#!/usr/bin/env python
#-*- coding:utf-8 -*-

class ShortError(Exception):    # 必须用类来自定义异常,且要继承Exception这个异常
    def __str__(self):
        return "your password is too short, please input again."

try:
    password = raw_input("Please input your password: ")
    if len(password) <= 3:
        raise ShortError()    # 如果密码长度小于3,就抛出 ShortError 这个异常,下面的 except 捕获这个异常,最终决定要做什么
except ShortError, e:         
    print(e)

 

 

 

 

 

 

 

    

转载于:https://www.cnblogs.com/pzk7788/p/10300940.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值