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)

        

  • 相关阅读:
    [转]Android输入法框的梳理
    [转]Android中OptionMenu的使用
    [转] Android把view的画面转换为bitmap
    Health Level Seven International (HL7)
    [转]andriod的apk文件相关的编译反编译工具
    [转]Android优秀开源项目收集
    而立之年 独立自主
    [转]Android模拟键盘和键盘监听的一些调研
    [转] linux中如何能在DDMS中打开真机中的数据库
    [转]关于使用SurfaceFligner进行绘图的具体实现方法
  • 原文地址:https://www.cnblogs.com/pzk7788/p/10300940.html
Copyright © 2011-2022 走看看