zoukankan      html  css  js  c++  java
  • python中异常处理

    什么是异常?

    异常是一个事件,该事件会在程序的执行中发生,影响程序的正常运行,一般情况下,在python无法正常处理程序时,就会发生异常。异常在python的对象中,就是一个错误。我们要捕获并处理异常,否则程序将会终止进行。

    捕获异常的语法如下:

    try:

    <语句>  #运行别的代码

    except <名字>:

    <语句>   #如果在try部分发生了异常。

    #-*-coding:UTF-8 -*-
    def exp_execption(x,y):
       try:
          a=x/y
          print('a=',a)
          return a
       except Exception:
          print("程序执行异常,异常信息:被除数为0")
    exp_execption(2,0)

    Python 使用raise 语句抛出了一个指定异常。我们可以使用类(Exception的子类)或者实例参数调用raise语句引发异常。使用类时程序会自动创建实例

    捕获多个异常

    #-*-coding:UTF-8 -*-
    def mult_execption(x,y):
       try:
          a=x/y
          b=name
       except ZeroDivisionError:
          print('this is ZeroDivisionError')
       except NameError:
          print("this is NameError")
    mult_execption(2,0)

    如果把a=x/y注释掉或者放到b=name下面,则得到的执行结果为:

    this is NameError

    捕捉对象:

    如果希望在except子局中访问异常对象本身,也就是看到一个异常对象真正的异常信息,而不是输出自己定义的异常信息,可以使用as e 的形式,我们称之为捕捉对象

    #-*-coding:UTF-8 -*-
    def model_execption(x,y):
       try:
          b=name
          a=x/y
       except(ZeroDivisionError,NameError,TypeError) as e:
          print(e)
    model_execption(2,0)
    [python@master test]$ python3 d.py 
    name 'name' is not defined

     finally 子句

    Python中的finally子句需要和try子句一起使用,组成try/finally的语句形式,无论发生异常与否,都会执行最后的代码

    #-*- coding:UTF-8 -*-
    def use_finally(x,y):
       try:
           a=x/y
       except ZeroDivisionError:
           print('some bad thing happed:division by zero')
       finally:
           print('No matter what happened,I will show in front of you')
    use_finally(2,0)
    [python@master test]$ python3 a.py 
    some bad thing happed:division by zero
    No matter what happened,I will show in front of you

    finally子句在关闭文件或者数据库连接时非常有用。

  • 相关阅读:
    autojspro常用的代码和公共函数搜集整理,史上最全最完整
    C# List类型复制克隆副本以及插入数据,按照某个字段进行排序,去掉某些不符合要求的数据
    C# 将double类型值截取小数点后两位或者多位
    Excel表格中引用另外一格数据。写sql用的
    最全的Resharper快捷键汇总
    easyui datagrid没有ID情况下,easyui datagrid 删除行信息方法
    C# 通过JObject解析json对象
    c#中string字符串转为json与json转对象
    前端js拼接Json字符串,全
    Java+IDEA环境配置整合
  • 原文地址:https://www.cnblogs.com/hello-wei/p/10138879.html
Copyright © 2011-2022 走看看