大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
Python抛出异常【1】
程序运行过程中 Python解释器遇到一个错误 会停止程序的运行 并且提示一些错误信息 这个 就是异常
程序停止并且提示错误信息的动作叫做抛出异常
抛出异常原因
主动捕获异常 可以增加健壮性
抛出异常的种类
- AssertionError ,断言失败抛出异常;
- AttributeError ,找不到属性抛出异常;
- ValueError , 参数值不正确(类型正确);
- WindowsError/(OSError,IOError,EnvironmentError),I/O相关错误
- UnicodeError,ValueError的子异常,编码错误
- UnicodeDecodeError UnicodeError的子异常 编码,解码错误
- UnicodeEncodeError UnicodeError的子异常 编码,编码错误
- UnicodeTranslateError UnicodeError的子异常 编码,翻译错误
- ConnectionError OSError子异常,连接错误
- BrokenPipeError ConnectionError 子异常 连接管道错误
- ArithmeticError 算术错误的基类
- ZeroDivisionError 算数错误的子类,除法或模运算的第二个参数是零
- BufferError 缓冲区错误
注意 如果不确定需要打印异常种类 只是单纯不想让程序暂停 可以使用基类Exception 但是 Python中不推荐使用这种方法
抛出异常的格式
1.基本语法
try:
num = int(input("请输入一个数字:"))
print(num)
except ValueError as e:
print(e)
finally:
print("抛出异常")
2.解析
关键字try 以及except是 使用Python 解释器主动抛出异常的关键,
Python解释器从上向下执行 当运行try中的某行代码出错,会直接进入except中执行下方代码 try中错行下方的代码不会被运行
except…as… 是固定的语法格式 打印traceback信息
finally 后的代码不管是否抛出异常都会执行
except 的原理 调用sys中 exc.info 方法返回基本信息 所以抛出异常的第一步拓展可以在这里开始
注意 每个关键字下方的代码都是独立的(所有的变量都是局部变量)
基本拓展:sys.exc.info
1.初步拓展
try:
num = int(input("请输入一个数字:"))
print(num)
except ValueError as e:
exc_type, exc_value, exc_traceback_obj = sys.exc_info()
print(exc_type) # 异常的类型
print( exc_value) # 异常的值
print(exc_traceback_obj) #异常的对象 返回堆栈的位置 内存地址
在一般情况下 基本的抛出异常已经足够使用 但是 不排除特殊情况 比如说日志输出等场景 这种场景可能需要进一步的拓展异常的抛出 具体的方法会再下一章进行详细的记录…
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/180795.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...