python--异常处理,,一、格式 :try.


一、格式 :try....except....finally

try:    s=10/0except ZeroDivisionError as e:    print(‘走这里‘)    print(e)def calc(a,b):    try:        res = a/b    except ZeroDivisionError as e:        res = ‘除数不能为零,%s‘%e        print(res)    except TypeError as e:        res = ‘类型错误,%s‘ % e    except Exception as e:  # Exception捕捉所有的异常        print(e)res = calc(10,1)calc(‘k‘,1)   #TypeError: unsupported operand type(s) for /: ‘str‘ and ‘int‘calc(10,0)money = input(‘enter:‘)try:    money = int(money)except Exception as e:#产生异常时执行    print(‘输入金额错误‘)else:    #这个else和上面的try对应,没有出现异常时执行    print(money+1)finally:    print(‘不管是否出现异常都会执行‘)

二、常见的异常信息

AttributeError: 试图访问一个对象没有的属性,比如foo.x,但是foo没有属性x IOError:输入/输出异常,一般是无法打开文件 ImportError: 无法导入模块或包,一般是路径问题或名称错误 IndentationError:代码没有正确对齐,属于语法错误 IndexError:下标索引超出序列边界,比如x只有三个元素,却试图访问x[3] KeyError:试图访问字典里不存在的键 KeyboardInterrupt:Ctrl+C被按下 NameError:使用一个还未被赋予对象的变量 SyntaxError: 语法错误 TypeError: 传入对象类型与要求的不符 UnboundLocalError:试图访问一个还未被设置的局部变量,一般是由于在代码块外部还有另一个同名变量 ValueError: 传入一个调用者不期望的值,即使值的类型是正确的

三、主动抛出异常

主动抛出异常,就是我们在代码里面让它自动抛出一个异常,然后捕捉到,比如说我们在写自动化测试脚本的时候,结果和预期不符合,就可以主动抛出一个异常信息,然后捕捉到,做其他的处理,主动抛出异常使用raise关键字。

try:     raise KeyError     #主动抛出一个keyerror的异常 except KeyError as e:     print(‘这个是我主动抛出的异常‘)

python--异常处理

评论关闭