网站备案个人使用,湖州做网站公司哪家好,手机网站 微信网站,学平面设计的网站1、编写自己的异常时#xff0c;通常是继承Exception2、如果继承的是BaseException#xff0c;那么就不会被通用的except Exception捕捉到3、自己定义的异常Python不会自动触发#xff0c;需要自己触发#xff0c;用raise进行触发4、python只会自动触发它…1、编写自己的异常时通常是继承Exception2、如果继承的是BaseException那么就不会被通用的except Exception捕捉到3、自己定义的异常Python不会自动触发需要自己触发用raise进行触发4、python只会自动触发它自己本身内置的异常如IndexEerrorNameErrorIOError等只要是Error结尾通常都是内置异常class MyException(Exception):def __init__(self, msg): #msg参数用于接收自己触发异常时传进来的错误描述信息self.msg msgdef __str__(self): #格式化输出return [Internal Logic Error:] %s % (self.msg)#例子1# if __name__ __main__:# flag False# try:# if flag:# print(Initialization data)# print(done...)# else:# raise MyException(no data) #触发自己的异常# except MyException as err: #捕捉被触发的自定义异常# print(err) #打印异常信息如果有参数那么可通过err.args打印参数#例子2:在自定义的异常中能否捕捉内置异常呢# if __name__ __main__:# a [1,2,3,4]# # print(a[10]) # 将这一句放在这里则抛出IndexError: list index out of range且程序停止运行# flag False# try:# if flag:# print(Initialization data)# print(done...)# print(a[10]) #这里访问一个不正确的索引似乎捕捉不到# else:# raise MyException(no data) #触发自己的异常# except MyException as err: #捕捉被触发的自定义异常# print(err) #打印异常信息如果有参数那么可通过err.args打印参数#******************编写一个需要给定初始值的自定义异常类****************class LoginExce(Exception):def __init__(self, username, password):super().__init__(your username:{name} and passwd:{pwd} is error.format(nameusername, pwdpassword))self.user usernameself.pwd passworddef log(self):print(登录异常记录到日志...)log_err_info (u:%s p:%s login failed % (self.user, self.pwd))# if __name__ __main__:# auth False #这标志位用于模拟登录的状态# try:# if auth:# print(登录成功...)# else:# raise LoginExce(toby, 1qazWSX) #如登录失败则引发异常# except LoginExce as err: #捕捉这个异常# err.log() #调用异常类的日志记录的方法# print(err) #打印异常信息## 根据上面的测试得知只有在引发了自定义的异常后才能访问到异常的实例名字叫err#看下面两个函数一个是用if还有一个是通过捕捉异常def func_a(num):try:print(100 / num)except (ZeroDivisionError, TypeError):print(value Value can not be illegal)def func_b(num):if num 0:print(value Value can not be 0)returnif isinstance(num, str):print(value Value can not be str)returnelse:print(100 / num)func_a(0)func_b(0)func_a(abc) #传入字符串func_b(abc) #传入字符串#那么其实这两种方式可以结合使用形成强大的捕捉和处理能力