异常的处理try

  • 1. 形式
    • 1.1 异常处理处理
    • 1.2 自定义异常类

1. 形式

什么是异常:程序执行过程中的不可预知的问题
常见的异常

NameError
TypeError
ValueError
AttribitueError
SyntaxError
IndexError

1.1 异常处理处理

通过try进行异常的捕捉,形势如下

try:可能出现异常的代码
except Exception as e:给捕捉到的异常起别名,进行打印print(e)出现异常的时候解决的代码
else:没有异常就执行的代码
finally:不管有没有异常都执行的代码捕捉多个异常,但是在同一个时间段里边只能捕捉到一个异常
try:可能出现异常的代码
except (Exception,...) as e:给捕捉到的异常起别名,进行打印print(e)出现异常的时候解决的代码
else:没有异常就执行的代码
finally:不管有没有异常都执行的代码

案例:

s = 'Hello'try:print(s.index('O'))
except Exception:print('查找的子串不存在')

当代码出现了很层级的调用时,在其中发生了异常,如果没有处理这个异常,这个异常会自动向上抛出
如果上层也没有处理,那么再继续向上抛出,直到抛到解释器,解释器默认处理异常的方式就是中断程序,将异常信息显示控制台上
案例:

def func_a():print('a run ...')func_b()def func_b():print('b run ...')func_c()def func_c():print('c run ...')try:print(1/0)except Exception:print('你的除数为0')func_a()
# 多个异常的捕捉,但是在同一时刻只能有一个异常发生

1.2 自定义异常类

异常类继承与Exception类的
抛异常的时候使用raise

class PhoneNumberNoDigitError(Exception):passclass PhoneNumberLenthError(Exception):def __init__(self, msg):self.__msg = msgdef __str__(self):return self.__msgdef get_number():num = input('输入number:')if num.isdigit() is False:raise PhoneNumberNoDigitError()elif len(num) != 11:raise PhoneNumberLenthError('手机位数不够11')return '输入合法:'+num
from p_03自定义异常类 import *try:num = get_number()
except (PhoneNumberLenthError, PhoneNumberNoDigitError)as e:print(e)
else:print(num)

异常的处理try--(python19)相关推荐

  1. Java | kotlin 手动注入bean,解决lateinit property loginService has not been initialized异常

    kotlin.UninitializedPropertyAccessException: lateinit property loginService has not been initialized ...

  2. JS Uncaught SyntaxError:Unexpected identifier异常报错原因及其解决方法

    最近在写ajax的时候,调用js方法,遇到了Uncaught SyntaxError:Unexpected identifier异常报错,开始搞不清原因,很苦恼. 以为是js方法参数个数和长度的问题, ...

  3. JVM 常见异常及内存诊断

    栈内存溢出 栈内存大小设置:-Xss size 默认除了window以外的所有操作系统默认情况大小为 1MB,window 的默认大小依赖于虚拟机内存. 栈帧过多导致栈内存溢出 下述示例代码,由于递归 ...

  4. java通过异常处理错误,java基础之通过错误处理异常

    我们在编程过程中,通常需要时刻关注可能遇到的问题,此时可以把问题分为两类:普通问题与异常问题.普通问题:我们可以通过从当前环境中获取到的信息来解决这个问题:而异常问题:在当前环境中获取到的信息并不能解 ...

  5. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  6. 消除安卓SDK更新时的“https://dl-ssl.google.com refused”异常的方法

    消除安卓SDK更新时的"https://dl-ssl.google.com refused"异常的方法 消除安卓SDK更新时的"https://dl-ssl.google ...

  7. java 捕获异常并存入数据库_java异常处理,报异常的话怎么处理对象值,并持久化到数据库中...

    展开全部 //没看到有人回e68a843231313335323631343130323136353331333365646233答你,我还没学到框架,不知道那个是不是可以很便捷操作你说的这样过程 / ...

  8. python异常机制

    python异常处理机制 1.1python的内置异常 当我们在运行代码的时候一旦程序报错,就会终止运行,并且有的异常是不可避免的,但是我们可以对异常进行捕获,防止程序终止. python的内置异常是 ...

  9. Bad credentials异常

    在spring-security中出现Bad credentials异常,可能是如下情况: 一.username和password错误 二.访问权限不够 三.密码加密问题,对于密码加密问题可能是如下情 ...

  10. java.lang.NullPointerException异常原因及解决

    java.lang.NullPointerException异常原因是因为创建了一个引用类型的变量却没有指向任何对象而又去通过这个引用类型变量加点的形式去访问非静态的方法及属性. 给出三种情况, 第一 ...

最新文章

  1. 2021城市大脑与智能产业趋势简报第五期
  2. 2.Liunx 系统设置
  3. 分页,主要用于python django框架
  4. sqlmap常用操作命令
  5. 数学专业考研及读研目录[2014年11月7日更新]
  6. qt中如何模拟按钮点击_如何快速在 Shopify 中加入按钮
  7. 王爽 汇编语言第三版 第11章 标志寄存器
  8. 品质标签分几种颜色_常见标签种类分析
  9. 移动网页广告引入mraid.js使用指南
  10. Machine Learning Mastery 博客文章翻译:深度学习与 Keras
  11. java beetl 视频_04.Beetl常用内置函数以及安全输出---《Beetl视频课程》
  12. 依次将10个数输入,要求打印出其中最大的数
  13. Java修饰符public,private,protected及默认的区别
  14. 输出svn版本号到头文件
  15. 统计自然语言处理---信息论基础
  16. PFX文件解析及读取、写入、删除相关操作
  17. 从光猫的发出到另一个光猫的接入
  18. Hive 实现 IN 和 NOT IN 子句 和 LEFT SEMI JOIN 应用
  19. easyflash源码分析流程图
  20. 史上最全Git命令学习:从基础出发,Java中高级面试题总结(全面)

热门文章

  1. linux未来_使用Linux将汽车推向未来
  2. 苹果手机怎样快速翻译网页?利用Safari有妙招!
  3. let‘s talk 英语情景剧 P15
  4. WPF学习日记(一)——初步了解什么是WPF
  5. wine安装+中文配置+使用总结贴
  6. 数据库游标的概念和作用
  7. [转] 周志华:关于机器学习的一点思考
  8. Android自定义View--自己撸一个柱状图也没那么难
  9. Amazon云有mysql吗_云中的MySQL 亚马逊RDS初体验
  10. 微信H5游戏开发的发展与现状