1,异常捕获

异常捕获的字段为python解释报错的最后一行的第一个单词。使用try方法,程序报错时,可以使用except方法匹配报错的异常关键字,继续except下方定义的代码,从而保证代码可以正常运行,保证代码的稳定性。

# 定义一个计算器
def compute():
num = int(input("请输入被除的值:"))
result = 8 / num
print(result) # 测试方法,输入的数字为0 程序会出现报错 捕获报错异常
try:
print(compute())
except ZeroDivisionError: # ZeroDivisionError 为解释器报错时 最后一行的第一个单词 可以被解释器捕获
print("0不能充当分母,请重新输入")

2,整套异常处理的流程

# 定义一个计算器
def compute():
num = int(input("请输入被除的值:"))
result = 8 / num
return result # 测试方法,输入的数字为0 程序会出现报错 捕获报错异常
try:
print(compute())
except ZeroDivisionError: # ZeroDivisionError 为解释器报错时 最后一行的第一个单词 可以被解释器捕获
print("0不能充当分母,请重新输入")
except ValueError: # ValueError 为解释器另外一种异常错误,匹配到该异常,执行该except下方的代码
print("输入的值错误,请重新输入")
except (ZeroDivisionError,ValueError): # 对多个异常进行处理。
pass
else: # 无异常时,执行
pass
finally: # 有无异常,都会执行的代码
print("*********")

3, 自定义异常

案例:

密码输入长度匹配,长度必须大于8, 小于 10。否则输出“密码长度不正确”

def passwd():
passwd_tmp = input("请输入密码,长度必须大于8位,小于13位:")
if len(passwd_tmp) > 8:
if len(passwd_tmp) < 13:
return passwd_tmp
print("密码长度不对")
ex = Exception("密码长度不正确,请重新输入") # 定义ex变量,保存异常输出提示
raise ex # raise方法跑出变量ex保存的异常输入提示 print(passwd())

如果长度不符合,异常输入如下:

 C:/Users/yc/PycharmProjects/yc-study/对象/异常处理.py
请输入密码,长度必须大于8位,小于13位:1
密码长度不对
Traceback (most recent call last):
File "C:\Users\yc\PycharmProjects\yc-study\对象\异常处理.py", line 34, in <module>
print(passwd())
File "C:\Users\yc\PycharmProjects\yc-study\对象\异常处理.py", line 32, in passwd
raise ex # raise方法抛出变量ex保存的异常输入提示
Exception: 密码长度不正确,请重新输入 Process finished with exit code 1

python_异常处理(try except)的更多相关文章

  1. Python_异常处理结构与调试

    while True: x =input('Pleaes input:') try: x=int(x) print('You have input {0}'.format(x)) break exce ...

  2. python_异常处理_断言

    一.Python标准异常 常用异常 Exception 常规错误的基类 AttributeError 试图访问一个对象没有的属性 IOError 输入/ 输出异常,基本上是无法打开文件 ImportE ...

  3. 零基础学习python_异常处理(32-33课)

    我们写完python执行的时候是不是经常会遇到报错,而且报错都是大片红字,这样给别人的感受就是你写的程序怎么老是出问题啊,这样我们还咋么混下去呢?于是乎,就有了异常处理的东东. python的try语 ...

  4. python_异常处理

    常用异常种类 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块 ...

  5. Python_异常处理try...except、raise

    一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: 1 2 3 4 a=10 b= ...

  6. Python_异常处理、调试

    1.try except 机制 # 错误处理 # 一般程序都要用到错误捕获,当没有加且有错误的时候Python解释器会执行错误捕获,且是一层层向上捕获[所以问题点会在最下面] try: print(' ...

  7. Python_爬虫笔记_2018.3.19

    Python_爬虫_笔记 1.前言 1.1爬虫用途: 网站采集.接口采集(地图(jis 热力学 屋里端口/协议).微信.知乎.) 1.2基本流程:网页下载(requests)+网页解析+爬虫调度 网页 ...

  8. 关于.NET异常处理的思考

    年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java与.net的博文出现,我表示要作为一个吃瓜群众,静静的 ...

  9. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  10. 异常处理汇总 ~ 修正果带着你的Net飞奔吧!

    经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...

随机推荐

  1. Codeforces Round #846 (Div. 2) A-E

    比赛链接 A 题意 给 \(n\) 个正整数,找到三个数,使得他们的和为奇数,输出他们的下标. 题解 知识点:贪心. 找到三个奇数或者一个奇数两个偶数即可,其他情况无解. 时间复杂度 \(O(n)\) ...

  2. 【学习笔记】开源库之 - sigslot (提供该库存在对象拷贝崩溃问题的解决方案)

    介绍说明 学习 QT 的时候,觉得 QT 提供的信号槽机制非常有用,这种机制可以解决对象与对象之间通信中的耦合问题,原本想从网络上了解一下具体的实现思路用于项目中,意外的发现了用 C++ 实现的信号槽 ...

  3. [Vue warn]: Invalid prop: type check failed for prop "model". Expected Object, got String with value ""

    问题描述: [Vue warn]: Invalid prop: type check failed for prop "model". Expected Object, got S ...

  4. C# 学习async/await(个人理解)

    await : 等待的意思 async:异步(非同步) 当我们方法内部   存在await的时候,就返回出去 执行下一步 ,等await后面的方法执行完毕 在执行await下面的方法 一.我们先看正常 ...

  5. python学习第五周总结

    面向对象前戏之人狗大战 # 编写代码简单的实现人打狗 狗咬人的小游戏(剧情需要) """推导步骤1:代码定义出人和狗""" person1 ...

  6. 【爬虫+数据清洗+可视化分析】舆情分析哔哩哔哩"狂飙"的评论

    目录 一.背景介绍 二.爬虫代码 2.1 展示爬取结果 2.2 爬虫代码讲解 三.可视化代码 3.1 读取数据 3.2 数据清洗 3.3 可视化 3.3.1 IP属地分析-柱形图 3.3.2 评论时间 ...

  7. Android  JetPack~ LiveData (一)   介绍与使用

    一般情况下LiveData都是搭配这ViewModel使用,这里先介绍一下LiveData,再结合ViewModel使用 Android数据绑定技术一,企业级开发 Android数据绑定技术二,企业级 ...

  8. Class path contains multiple SLF4J bindings解决

    1.根据控制台查看冲突的日志依赖 本工程Maven依赖 <dependencies> <dependency> <groupId>org.slf4j</gro ...

  9. javaEE(多线程、线程通信、线程安全、线程池、线程池工具)

    多线程 多线程的创建 Thread类的方法 线程安全.线程同步 线程通信.线程池 定时器.线程状态.. Thread类 java是通过java.lang.Thread类来代表线程的 按照面向对象的思想 ...

  10. 滴水2.c++构造 与 继承

    1.构造函数特点 2.析构函数的特点: 析构函数前面必须有~ 3.继承 一个子类可以有多个父类 作业1. #include<stdio.h> struct DateInfo { int y ...