美文网首页
Python的异常处理(一)

Python的异常处理(一)

作者: 上发条的树 | 来源:发表于2016-05-26 15:10 被阅读47次

try...except...

tryExcept.py文件

#!/usr/bin/env Python
# coding=utf-8

while 1:
    print "this is a division program."
    c = raw_input("input 'c' continue,ohterwise logout:")
    if c == 'c':
        a = raw_input("first number:")
        b = raw_input("second number:")
        try:
            print float(a)/float(b)
            print "****************"
        except ZeroDivisionError:
            print "the second number can't be zero!"
            print "****************"
    else:
        break

运行结果:

$ python tryExcept.py
this is a division program.
input 'c' continue,ohterwise logout:c
first number:3
second number:2
1.5
****************
this is a division program.
input 'c' continue,ohterwise logout:d
$ 

如果没有异常发生,except子句在try语句执行后被忽略;
如果try子句中有异常发生,则try中语句被忽略,直接跳到except中执行。except之后也可不带任何异常参数,如果发生任何异常,都会跳到except中执行。

在except中,可以根据异常或者其他需求,进行更多的操作。例如:

#!/usr/bin/env Python
# coding=utf-8

class Calculator(object):
    is_raise = False
    def  calc(self,express):
        try:
            return eval(express)
        except ZeroDivisionError:
            if self.is_raise:
                print "zero can not be division."
            else:
                raise
if __name__ == '__main__':
    c = Calculator()
    print c.calc("8/0")

以上,使用了一个函数eval(),作用是:

>>> eval("2+3")
5
>>> eval("2*3")
6

在except子句中,有一个raise,含义是抛出异常信息,所以当is_raise = False时,异常抛出,如下:

$ python Calculator.py
Traceback (most recent call last):
  File "Calculator.py", line 16, in <module>
    print c.calc("8/0")
  File "Calculator.py", line 8, in calc
    return eval(express)
  File "<string>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero

当is_raise = True时,

if __name__ == '__main__':
    c = Calculator()
    c.is_raise = True #通过实例变量修改
    print c.calc("8/0")
$ python Calculator.py
zero can not be division.
None

最后None是c.calc("8/0")的返回值。

相关文章

  • python的异常处理

    Python异常处理

  • Python 异常

    Python 含有异常处理机制来帮助用户处理可能发生的错误异常。 1. 异常概念 异常是指Python程序运行过程...

  • V3.1.1 python异常与处理之怎么用

    一个编程的大白,我在学python的异常与处理。回顾前篇:V3.1 python异常与处理之异常基本语法) 现学习...

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • Python黑帽编程2.7 异常处理

    Python黑帽编程2.7 异常处理 Python黑帽编程2.7异常处理 异常是个很宽泛的概念,如果程序没有按预想...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • Python异常处理

    Python异常处理 一、捕获异常 1.异常捕获语法 2.错误类型捕获 except:处理所有异常。except ...

  • Python异常处理

    Python中文件的操作 Python异常的处理 异常的引发 try⋯finally的使用

  • python学习笔记之--异常处理

    类似于C++/Java等高级语言,python也有异常的处理机制 异常捕获和处理 在python语言中python...

  • 2.1.3 Python面向对象之异常处理

    点击跳转笔记总目录 Python面向对象之异常处理 一、错误与异常 二、异常处理 三、什么时候用异常处理 一、错误...

网友评论

      本文标题:Python的异常处理(一)

      本文链接:https://www.haomeiwen.com/subject/kiqxdttx.html