'''
==============================
知识点:
1.try: #自定义异常机制(格式)
2.except KeyError as e: # 遇到“KeyError”报错执行以下内容
   print("键错误")
3.finally: # 代码执行失败和成功都会执行
   print("无论如何都会执行的语句")
4.except (KeyError,FileNotFoundError) as e: #遇到“KeyError”或“FileNotFoundError”报错执行以下内容
   print("错误处理")
5.except Exception as e: # 万能报错
6.        raise TooLongExceptin(len(name)) # 自定义错误类型
except TooLongExceptin as error:  # 这里异常类型是用户自定义的(自定义错误处理部分)
    print("名字的程度大于5!!!", error.len)
==============================
try: #自定义异常机制
    print("OK1")
    f = open("xxx") # 报错文件打不开
    {}["name"] # 报错key找不到
    print("OK2")
except KeyError as e: # 遇到“KeyError”报错执行以下内容
   print("键错误")
except FileNotFoundError as e: # 遇到“FileNotFoundError”报错执行以下内容
   print("文件未找到!")
finally: # 代码执行失败和成功都会执行
   print("无论如何都会执行的语句")
except (KeyError,FileNotFoundError) as e: #遇到“KeyError”或“FileNotFoundError”报错执行以下内容
   print("错误处理")
except Exception as e: # 万能错误
   print("报错了", e)
   print("文件不存在!")
# 案例1.用户自定义异常类型
class TooLongExceptin(Exception):
    "this is user's Exception for check the length of name "
    def __init__(self, len):
        self.xxx = len
    def __str__(self):
        return "输入姓名长度是" + str(self.len) + ",超过长度了"
try:
    name = input("enter your name:")
    if len(name) > 5:
        raise TooLongExceptin(len(name)) # 自定义错误类型
    else:
        print(name)
except TooLongExceptin as error:  # 这里异常类型是用户自定义的(自定义错误处理部分)
    print("名字的程度大于5!!!", error.len)
'''