zoukankan      html  css  js  c++  java
  • 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)

        

  • 相关阅读:
    远离热闹
    漫步泰晤士小镇
    逛2011上海宠物大会(多图)
    iphone 4入手一周使用心得与感受
    章鱼帝
    南非世界杯赛程表下载(Excel版)
    相亲记
    再评富士康悲剧
    上海的朋友出门注意
    有感于车船税
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10300940.html
Copyright © 2011-2022 走看看