#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2017/11/22 22:18
# @Author : mixiu26
names = ["yaya","yiyi"]
data = {}
try:
# data['name'] # 表示尝试处理这段代码,如果处理失败,则运行下一部分:
names[3]
open("tes.txt")
a = 1
print(a)
except KeyError as e:
print("尝试执行代码失败,",e) # 尝试处理代码失败,捕捉失败原因: 尝试执行代码失败, 'name'
except IndexError as e:
print("索引越界异常: ",e) # 尝试执行try中两部分代码,如果谁中有异常,就打印谁中的信息:
except Exception as e:
print("捕捉所有未知错误 >>>:") # Exception ---- >> 一般建议放在最后,捕捉所有未知错误
else:
print("一切正常 >>>: ") # ---- >> 没有任何错误时执行它
finally:
print("不管程序正常与否, 都正常执行: ") # 不管程序正常与否, 都正常执行:
# 统一处理异常信息:
# try:
# names[3]
# data['name']
# open("tes.txt")
# except Exception as e: # ---- >> 一般不用
# print("程序出错: ",e) # 程序出错: list index out of range ---- >>此种处理异常的方式就是无法判断到底是哪里出的错
# 自定义异常:
class QuanqException(Exception): # ---- >>继承自基类exception
def __init__(self,message):
self.message = message # 初始化错误信息 --- >>促发异常时,将异常信息传入这里,然后有return进行数据返回
# def __str__(self):
# return self.message # 返回字符串格式的错误信息,这里可以改变返回的错误信息
try:
raise QuanqException('自定义异常') # 促发自定义异常: 实例化时将其传给message
except QuanqException as e:
print(e)