python抛出异常和捕获异常_在try块中可以抛出异常吗

python抛出异常和捕获异常_在try块中可以抛出异常吗PythonLearnPython抛出异常【1】程序运行过程中Python解释器遇到一个错误会停止程序的运行并且提示一些错误信息这个就是异常程序停止并且提示错误信息的动作叫做抛出异常抛出异常原因 主动捕获异常可以增加健壮性抛出异常的种类AssertionError,断言失败抛出异常;AttributeError,找不到属性抛出异常;ValueError,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

PythonLearn

Python抛出异常【1】

 程序运行过程中 Python解释器遇到一个错误 会停止程序的运行 并且提示一些错误信息 这个 就是异常
程序停止并且提示错误信息的动作叫做抛出异常

抛出异常原因

	主动捕获异常 可以增加健壮性

抛出异常的种类

  1. AssertionError ,断言失败抛出异常;
  2. AttributeError ,找不到属性抛出异常;
  3. ValueError , 参数值不正确(类型正确);
  4. WindowsError/(OSError,IOError,EnvironmentError),I/O相关错误
  5. UnicodeError,ValueError的子异常,编码错误
  6. UnicodeDecodeError UnicodeError的子异常 编码,解码错误
  7. UnicodeEncodeError UnicodeError的子异常 编码,编码错误
  8. UnicodeTranslateError UnicodeError的子异常 编码,翻译错误
  9. ConnectionError OSError子异常,连接错误
  10. BrokenPipeError ConnectionError 子异常 连接管道错误
  11. ArithmeticError 算术错误的基类
  12. ZeroDivisionError 算数错误的子类,除法或模运算的第二个参数是零
  13. 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账号...

(0)


相关推荐

  • Android开发环境配置

    Android开发环境配置本文是Android开发环境的搭建教程,最近用到了Android开发,对环境搭建做个总结。1、安装JDK首先去官网下载JDK。JavaSeSdk下载地址:https://www.oracle.com/java/technologies/javase-downloads.html选择Windows版本。下载完成后,直接双击安装,使用默认路径C:\ProgramFiles\Java\jdk-17.0.2即可。然后配置环境变量。然后,运行CMD,输入java-version。如上图,看到

  • 分享一个好用的Python在线编辑器

    分享一个好用的Python在线编辑器原文:https://lwebapp.com/zh/python-online需求有小伙伴可能听说过PyScript,知道了Python可以通过打包成wasm运行在浏览器端了,这样做一些需要Python来做的功能,可以直接在浏览器完成,无需和服务器交互,打开了开发者的想象力。这里我们要推荐的是一个在线工具,也是支持Python代码的执行,一个在线的Python代码编辑器Python在线编辑器地址:https://lwebapp.com/zh/python-playground如何使用Py

  • php文件管理_php官方文档

    php文件管理_php官方文档<html><head><title>java</title></head><body><styletype=”text/css”>body{background:#E4E4E4;color:#666666;font-…

  • 计算ip地址的有效范围是_ip地址如何计算

    计算ip地址的有效范围是_ip地址如何计算例如:ip:192.168.9.3子网掩码:255.255.254.0网关:192.168.9.11:IP地址=网络地址+主机地址,二进制为:110000001010100000001001000000112:子网掩码的二进制表示为:11111111111111111111111000000000解析:前面1的就是网络地址部分,后面0就是主机地址,所以此处有9位主机地址。3:网络地址=子网掩码&IP地址,即:192.168.8.04:广播地址=3中

    2022年10月20日
  • (7)JMeter元件详解之 Interleave Controller 交替控制器

    (7)JMeter元件详解之 Interleave Controller 交替控制器

  • 很黄很暴力 地球不同版本

    很黄很暴力 地球不同版本国际英语:toopornographic,tooviolent.江氏英语:toosimple,toonaive阿拉伯语:الاباحيهجدا،عنيفةجدا纽约:Veryyellow,veryboompower德语:sehrpornografisch,sehrgewalttaetig挪威语:veldigporno,v

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号