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

最新文章

  1. Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享
  2. CentOS下升级python2.7.10过程记录
  3. Android Volley框架的使用(3)
  4. 简单通过java的socket&amp;serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中
  5. emment语法
  6. 怎么给iOS项目打包
  7. QT学习 之 三维饼图绘制
  8. PHP之-json转数组,支持多层嵌套json
  9. Delphi+GDI
  10. 第6章 Overlapped I/O, 在你身后变戏法 ---被激发的 File Handles -3
  11. AutoStartUtil【打开自启动设置界面】
  12. mac上修改host
  13. .NET MVC 简单的插件式开发
  14. P5239 回忆京都(洛谷3月月赛T2)
  15. springcloud第二步:发布服务提供者
  16. mybatis的插件分析
  17. elasticsearch template
  18. POI写Word换行
  19. PICT用户手册 [转]
  20. 跟我学SharePoint 2013视频培训课程——排序、过滤在列表、库中的使用(10)

热门文章

  1. 图文并茂的学习笔记--微信小程序自定义tabbar
  2. Linux简易入门
  3. web应用开发模式、API接口、接口测试工具postman
  4. Java微服务随机掉线排查思路
  5. @EnableDiscoveryClient和@EnableEurekaClient springboot3.x
  6. redis-07主从复制
  7. Docker安装Tomcat应用服务器
  8. C++ 练习7 引用作为函数返回值
  9. What?JMeter做UI自动化!
  10. CF1367E Necklace Assembly