name = ["fxl","cx"]
data = {}


try:
    name[1]
    #name[3]
    #data["key"]
    #open(t.txt)
except IndexError as e:
    print("列表操作错误")
except KeyError as e:
    print("没有这个key")
except Exception as e:              #抓住所有错误,通常写在最后抓未知错误
    print("未知出错了:%s"%e)
else:                                 #正常的时候执行
    print("一切正常")
finally:
    print("正不正常都执行")

# try:
#     name[3]
#     data["key"]
# except (IndexError,KeyError) as e:              #对于这两种错误统一处理,第一个错误执行后面错误就不执行了
#     print("出错了")


#自定义异常
class fxlexception(Exception):
    def __init__(self,msg):
        self.message = msg
    def __str__(self):
        return self.message

try:
    raise fxlexception("数据库连接不上")           #触发自定义异常
except fxlexception as e:
    print(e)