码迷,mamicode.com
首页 > 编程语言 > 详细

Python 学习第三弹:异常情况如何处理?

时间:2014-10-06 03:05:39      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   sp   div   c   on   log   

python 的处理错误的方式:

1> 断言

    assert condition
    相当于 
    if not condition:
        crash program
    断言设置的目的就是因为与其让程序晚点崩溃,不如直接设置错误情况,让它直接崩溃
    >>> age = -1
    >>> assert 0 < age < 100
    AssertionError

 

2> 捕捉异常

    try:
        x = input()
        y = input()
        print(x/y)
    except ZeroDivisionError:
        print("Division by Zero")
    类似这样try/except形式就是来捕捉可能发生的异常错误,一旦出现ZeroDivisionError错误信息,则运行except ZeroDivisionError之后的代码

    通过多个except来捕捉不同错误信息
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            except TypeError:
                print(This is not a number?)
    一个块捕捉多个错误信息
        def calc(expr):
            try:
                return eval(expr)
            except (ZeroDivisionError, TypeError):
                print("Input has some bugs")
    打印错误信息
        def calc(expr):
            try:
                return eval(expr)
            except (ZeroDivisionError, TypeError) as error:
                print(error)
    对于其他错误信息处理
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            except:
                print(haha, something unknown happened!)
    else语句用于不出现错误信息
        def calc(expr):
            try:
                return eval(expr)
            except ZeroDivisionError:
                print("Divison by zero")
            else:
                print("Oh, it goes well!")

    此外还有finally语句,无论是否错误均会执行

    实际应用:(输入表达式直到可以计算)
    while True:
        try:
            print(eval(input()))
        except:
            print(Please reinput until you input the correct expression!)
        else:
            break;
        finally:
            print(I love the world whatever!) #即使else中break也会执行finally

 

Python 学习第三弹:异常情况如何处理?

标签:style   blog   color   io   sp   div   c   on   log   

原文地址:http://www.cnblogs.com/Mathics/p/4007883.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!