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

     

  • 相关阅读:
    ThinkPHP
    ThinkPHP
    静态化
    静态化
    静态化
    设计模式
    sublime
    静态化
    OPTIMIZE TABLE 小解
    information_schema系列八(事物,锁)
  • 原文地址:https://www.cnblogs.com/yb38156/p/12504933.html
Copyright © 2011-2022 走看看