码迷,mamicode.com
首页 > 其他好文 > 详细

异常处理

时间:2018-08-14 21:08:42      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:div   检测   tee   keyboard   打开文件   路径   ati   错误   对象类型   

# 异常处理
# 常见异常
# SyntaxError 语法错误
# AttributeError 试图访问一个对象没有的属性
# IOError 输入/输出异常;基本上是无法打开文件
# ImportError 无法引入模块或包;基本上是路径问题或名称错误
# IndentationError 语法错误的子类;代码没有正确对齐
# IndexError 下标索引超出序列边界
# KeyError 试图访问字典中不存在的key
# KeyboardInterrupt Ctrl+c被按下
# NameError   使用一个还未被赋予对象的变量
# TypeError 传入的对象类型与要求不符合
# UnboundLocalError 试图访问一个还未被设置的局部变量 ,基本上是由于有另一个同名的全局变量,导致你以为正在访问它
# ValueError  传入一个调用者不期望的值,即使值的类型是正确的

# 异常处理的基本语法
# try:
#     被检测的代码块
# except 异常类型:
#     异常类型与异常一样,就执行这个位置的逻辑
# except 异常类型:       上面的异常类型没有再找这里的异常类型
#     异常类型与异常一样,就执行这个位置的逻辑
# ……
# else:
#     当try内代码没有异常时会执行这个位置的逻辑
# finally:
#     无论异常与否,都会执行这个位置的逻辑

s1 = hello

try:
    int(s1)
except IndexError as e:
    print(e)
except ValueError as e:
    print(e)
except TypeError as e:
    print(e)

# 万能异常类型 Exception

s1 = hello

try:
    int(s1)
except Exception as e:
    print(e)

# 主动触发异常

try:
    raise TypeError(类型错误)
except Exception as e:
    print(e)

# 自定义异常
class MyException(BaseException):       # 自定义异常必须继承BaseException类
    def __init__(self, msg):
        self.msg = msg

try:
    raise MyException(自定义异常)
except MyException as e:
    print(e)

# 断言  在程序的某个位置判断一下结果是不是想要的值,如果不是想要的值就抛出一个异常
assert 1 == 1    # 有点类似于if,如果等式成立,执行它下面的代码

# assert 1 == 2   # 如果等式不成立,抛出一个AssertionError的异常

 

异常处理

标签:div   检测   tee   keyboard   打开文件   路径   ati   错误   对象类型   

原文地址:https://www.cnblogs.com/dangrui0725/p/9477415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!