python_异常处理(try except)
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)的更多相关文章
- Python_异常处理结构与调试
while True: x =input('Pleaes input:') try: x=int(x) print('You have input {0}'.format(x)) break exce ...
- python_异常处理_断言
一.Python标准异常 常用异常 Exception 常规错误的基类 AttributeError 试图访问一个对象没有的属性 IOError 输入/ 输出异常,基本上是无法打开文件 ImportE ...
- 零基础学习python_异常处理(32-33课)
我们写完python执行的时候是不是经常会遇到报错,而且报错都是大片红字,这样给别人的感受就是你写的程序怎么老是出问题啊,这样我们还咋么混下去呢?于是乎,就有了异常处理的东东. python的try语 ...
- python_异常处理
常用异常种类 AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x IOError 输入/输出异常:基本上是无法打开文件 ImportError 无法引入模块 ...
- Python_异常处理try...except、raise
一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: 1 2 3 4 a=10 b= ...
- Python_异常处理、调试
1.try except 机制 # 错误处理 # 一般程序都要用到错误捕获,当没有加且有错误的时候Python解释器会执行错误捕获,且是一层层向上捕获[所以问题点会在最下面] try: print(' ...
- Python_爬虫笔记_2018.3.19
Python_爬虫_笔记 1.前言 1.1爬虫用途: 网站采集.接口采集(地图(jis 热力学 屋里端口/协议).微信.知乎.) 1.2基本流程:网页下载(requests)+网页解析+爬虫调度 网页 ...
- 关于.NET异常处理的思考
年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java与.net的博文出现,我表示要作为一个吃瓜群众,静静的 ...
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 异常处理汇总 ~ 修正果带着你的Net飞奔吧!
经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...
随机推荐
- Python面向对象(上)
Python面向对象(上) python是一门面向对象的编程语言.何为对象?对象是类的实例.在生活中,任何一个事物都是一个对象,如牡丹花.牡丹花的类是花类,同样属于花类的还有荷花.月季花.金银花.菊花 ...
- while循環的一些判斷條件和讀取循環精簡方法
while是入口條件循環 在進入循環體時必須要有獲取輸入數據并判斷的并檢查輸入數據的值,所以在while之前放一個scanf函數,讓循環繼續執行. 如果想讓循環繼續進行,那麽還需要在循環内設置一個讀取 ...
- ng-alain全局配置NzMessageService
官方文档是这样子的,抄下来会报错,因为没有后两个设置 import { NgZorroAntdModule, NzConfig, NZ_CONFIG } from 'ng-zorro-antd'; c ...
- P5192 Zoj3229 Shoot the Bullet|东方文花帖|【模板】有源汇上下界最大流
我们要做这道题首先先来学习: 无源汇上下界可行流 什么是无源汇上下界可行流 在一张图中,没有s和t,每条边有流量下界和流量上界,流量在这个区间内,求是否存在一种方案在满足流量平衡的情况下,使所有边满足 ...
- 重学SpringBoot. step2 Spring AOP
Spring AOP AOP的原理,就是生成对象的代理,然后通过在代理的执行中,添加一些钩子来扩展功能. @Aspect public class MyAspect { @Pointcut(" ...
- JAVA虚拟机22-原子性、可见性与有序性、先行发生原则
1 简介 Java内存模型是围绕着在并发过程中如何处理原子性.可见性和有序性这三个特征来建立的,我们逐个来看一下哪些操作实现了这三个特性 2 原子性 2.1 操作指令 由Java内存模型来直接保证 ...
- springcloud04 Ribbbon
Ribbbon虽然现在已经进入维护模式了,但是使用的还是很多的. 1.官网 https://github.com/Netflix/ribbon/wiki/Getting-Started 2.Ribbo ...
- GitHub实用开源项目
第一款 JSON Crack JSON Crack 是一个很方便的 JSON 数据可视化工具. 该项目不是简单的展示 JSON 数据,而是将其转化为类似思维导图的形式,支持放大/缩小.展开/收缩.搜索 ...
- 关于AD获取成员隶属于哪些组InvokeGet("memberOf")的问题
关于AD获取成员隶属于组成员问题 获取结果默认返回object类型,可能是string类型,也可能是object[]类型,所以只有一个结果的时候是string类型,直接返回object[]会报错 pr ...
- LeetCode 周赛 332,在套路里摸爬滚打~
本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问. 大家好,今天是 3T 选手小彭. 上周是 LeetCode 第 332 场周赛,你参加了吗?算法解题思维需要 ...