zoukankan      html  css  js  c++  java
  • python学习第七天——错误和异常

     这是一张python错误和异常相关的知识点图

    语法错误                                                           

    初学者常见的语法错误,大小写写错,冒号忘了,缩进乱了,加大括号等等,语法错误称为解析错

    异常处理                                                          

    try:

      ####执行代码

    except:

      ####异常时执行的代码

    else:

      ####没有异常时执行的代码

    finally:

      ####不管是否有异常均会执行的代码

    注意:

    执行try中语句发生异常后,try中余下语句将被忽略;如果异常类型和except中的异常匹配,则对应的except子句被执行;

    如果except中的异常均不匹配,则将会把异常传递到上层的try中;

    一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常但最多只有一个分支会被执行;

    最后一个except子句可以忽略异常的名称,它将被当作通配符使用

    import sys
     
    try:
        f = open('myfile.txt')
        s = f.readline()
        i = int(s.strip())
    except OSError as err:
        print("OS error: {0}".format(err))
    except ValueError:
        print("xxxxxxx")
    except:
        print("Unexpected error:", sys.exc_info()[0])
        raise

    引发异常                                            

      raise [Exception [, args [, traceback]]],类似java的throw

    注意:raise必须抛出Exception的子类(实例)

    with语句                                            

    了解下工作原理:

      with后返回的对象要求必须有这两个方法:__enter__() / __exit__(),例如文件对象file

      进入与此对象相关的运行时上下文,调用object.__enter__(self)方法

      退出与此对象相关的运行时上下文时调用object.__exit__(self, exc_type, exc_value, traceback)

    简单的示例:

    with open("myfile.txt") as f:
        for line in f:
            print(line, end="")

    assert断言                                         

      用于判断一个表达式,在表达式条件为 false 的时候触发异常

      语法:assert expression [, arguments]等价于:

    if not expression:
        raise AssertionError(arguments)

      例子:

    >>>assert false'hahahahah'
    
    输出:
    Traceback (most recent call last):
      File "xxx/test1.py", line 40, in <module>
        assert False,'hahahah'
    AssertionError: hahahah

     

  • 相关阅读:
    人工智能是什么?我来告诉你!
    【计算机网络】--路由控制
    【计算机网络】-中间系统到中间系统(isis)
    【计算机网络】-边界网关协议(BGP)
    《Linux就该这么学》—非常适合linux技术学习的入门好书
    ip路由原理、实施静态路由、实施rip
    python 冒泡排序动态图解
    小球100米反复上下跳;反转字符串单词
    django.db.utils.InternalError: (1054, "Unknown column 'cid' in 'field list'")
    'webpack-dev-server' 不是内部或外部命令,也不是可运行 的程序 或批处理文件。
  • 原文地址:https://www.cnblogs.com/yb38156/p/12504933.html
Copyright © 2011-2022 走看看