常见异常的解决
1.SyntaxError:语法错误
2.NameError:尝试访问一个没有申明的变量;
3.ZeroDivsionError:除数为0的错误(零除错误)
4.ValueError:数字错误
5.TypeError:类型错误
6.AttributeError:访问对象的不存在的属性
7.IndexError:索引越界异常
8.KeyError:字典的关键字不存在
_with上下文管理
测试with上下文管理
with不是用来取代try…except…finally结构的。只是作为补充,方便我们再文件管理,网络通信时的开发。
with open("d:/a.txt", "r") as f:
content = f.readline()
print(content)
print("程序执行结束!")
Trackback 模块
使用trackback模块打印异常信息
import traceback
#########将异常信息输出到指定的文件中#######
try:
print("step1")
num = 1/0
except:
with open("d:/a.txt","a") as f:
traceback.print_exc(file =f)
_自定义异常类_raise抛出异常
自定义异常类:命名一般以Error、Exception
自定义异常由raise语句主动抛出
class AgeError(Exception): # 继承Exception
def __init__(self, errorInfo):
Exception.__init__(self)
self.errorInfo = errorInfo
def __str__(self):
return str(self.errorInfo) + ",年龄错误!应该在1-150之间"
####################测试代码##############
if __name__ == "__main__": # 如果为True,则模块是作为独立文件运行,可以执行测试代码
age = int(input("输入一个年龄:"))
if age < 1 or age > 150:
raise AgeError(age)
else:
print("正常的年龄:", age)