跳转至

Python异常处理

一、 异常处理

用法一

1
2
3
4
5
#!/usr/bin/env python3
try:
    action()
except NameError as e:
    print("错误信息:",e)

用法二

1
2
3
4
5
6
7
#!/usr/bin/env python3
try:
    action()
except NameError as e:
    print("错误信息:",e)
except IndexError as e:
    print("错误信息:",e) 

用法三

1
2
3
4
5
6
7
#!/usr/bin/env python3
try:
    action()
except NameError as e:
    print("错误信息:",e)
except (IndexError, KeyError) as e:
    print("错误信息:",e) 

用法四

1
2
3
4
5
6
try:
    action()
except Exception as e:
    print("错误信息:",e)
else: # 如果主要执行的代码没有错误,就执行else中的内容
    print("===")

用法五

1
2
3
4
try:
    action()
finally: # 不处理异常,无论是否发生异常都会执行finally的子代码
    print("===")

二、 主动抛出异常

1
2
3
4
try:
  raise Exception('主动抛出的异常')
except Exception as e:
  print(e)

三、自定义异常

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class myError(Exception):
  """ 自定义异常"""
  def __init__(self,msg):
    self.message = msg
  def __str__(self):
    return self.message

try:
  raise myError('自定义的异常')
except Exception as e:
  print(e)

四、断言 assert

使用格式:assert 条件 条件成立继续执行 用于强制用户服从条件,否则报错,可以捕获,但一般不捕获