zoukankan      html  css  js  c++  java
  • Python随笔11

    异常:

      异常不是语法错误,异常是一个事件是一个错误,当程序遇到这个异常时,要么去处理它要么终止并退出。如果异常没有处理,Python会调用回溯(traceback一种错误信息)并终止执行。Exception是所有异常的基类,Python利用exception object来表示异常。处理异常是用try: except:语句来包裹可能会出现异常的代码块。

    try:
    #     可疑代码块
    # except Exception1:     单个try语句可以抛出多个异常,可以用多个except语句,也可以用一个except语句处理所有异常
    #         ........
    # except Exception2:     如果代码在try:块不产生异常,可以在else语句中执行,else语句不需要try:块的保护,else语句必须在except之后
    #         ........
    # else:
    #     ...........

      一个简单的例子:

    try:
        print(1/0)
    except ZeroDivisionError:
        print("被除数不能为0!")

      结果:

    被除数不能为0!

      这样就将一个错误处理掉了。

      再举一个例子:

    try:
        x  = int(input("除数:"))
        y = int(input("被除数"))
        print(x/y)
    except ZeroDivisionError:
        print("被除数为0")
    # 捕捉多个异常
    except (ValueError,TypeError) as e:
        print("被除数非整数")
        print(e)
    # 在try中可疑代码块无异常时执行
    else:
        print("结果正常运行")

      当我们输入的被除数为0、非整数、非int型数据时,会分别抛出不同的异常

      finally关键字:

      finally关键字总是放在最后,而且不管有没有异常总会被执行。同样也可以放在函数中。

      例子:

      

    while True:
        try:
            x = int(input("除数:"))
            y = int(input("被除数"))
            print(x / y)
        except Exception as e:
            print("错误信息为", e)
        else:
            print("计算正确")
            break
        finally:
            print("结束!")

      无论有没有异常,finally总会被执行

      

    def function1(x,y):
        try:
            result=x/y
        except Exception as e:
            print(e)
        else:
            print(result)
        finally:
            print("结束了")
    #
    print(function1(1,"x"))

      不管参数如何,finally语句总会被执行

      异常具有传递性,我们必须在可能发生异常的地方处理掉异常 

    def faulty():
        raise Exception("someting is wrong!")
    def ignore_exception():
        faulty()
    print(ignore_exception())

      比方我们在最开始有一个异常faulty(),没有去处理它,在ignore_exception()它也继续存在,一直到我们调用这个ignore_exception()函数还是存在

    Traceback (most recent call last):
      File "D:/PythonDemo/异常3--finally.py", line 40, in <module>
        print(ignore_exception())
      File "D:/PythonDemo/异常3--finally.py", line 32, in ignore_exception
        faulty()
      File "D:/PythonDemo/异常3--finally.py", line 30, in faulty
        raise Exception("someting is wrong!")
    Exception: someting is wrong!
  • 相关阅读:
    Sqli Labs Less-21-31
    sqli labs Less-11-20
    基础知识补充及sqli-labs Less 5-10
    sqli-labs Less 2-4
    Sql简单的搜索语句及sqli-labs的less-1
    Sqli labs相关环境的下载与安装
    行内元素没有宽高,块级元素有宽高
    Webview上传文件的那些坑
    [Android开发] 代码code设置9.png/9-patch 图片背景后,此view中的TextView等控件显示不正常(常见于listview中)
    AndroidSupportDesign之TabLayout使用详解
  • 原文地址:https://www.cnblogs.com/bigbigtong/p/10247086.html
Copyright © 2011-2022 走看看