Python 例外


例外是一个事件,当发生例外时,程序中断正常的执行顺序。


处理例外的写法:

try:
  语句1
except 例外名1:
  语句2
except 例外名2 as 例外变量1:
  语句3
except (例外名3, 例外名4...):
  语句4
except: #除上面已列出的例外之外的其它例外
  语句5
finally:
  语句6
else:
  语句7

其中finally中的语句无论是否发生例外都会执行。else中的语句只在没有发生例外时才会执行

下面是例外的例子:

#!/usr/bin/python
import sys

try:
    print(2 / 0)
except ZeroDivisionError as zero:
    print('err : ', zero)   # division by zero
finally:
    print('finally \n')     # finally

try:
    print(2 / 0)
except ValueError:
    print('ValueError')
except:
    print('except : ', sys.exc_info()[1], '\n') # division by zero

try:
    print(2 / 1)    # 2.0
except (ZeroDivisionError, ValueError) as err:
    print('err : ', err)
else:
    print('else')   # else

自定义例外

下面是自定义例外的例子:

#!/usr/bin/python
class OneException(Exception):
    def __init__(self, value):
        self.parameter = value
    def __str__(self):
        return repr(self.parameter)

try:
    raise OneException("my exception")
except OneException as err:
    print("err : ", err)    # 'my exception'