1. try...except语句的嵌套

这种语句就是多except语句的多处理方式,下面我们通过一个例题来学习一下try...except的语句嵌套。def test():

n = int(input('有3个语句需要测试,请选择(1/2/3):'))

if n == 1:#keyError异常情况

my_dict = {'dotcpp': 123}

print(my_dict['dot'])

elif n == 2:#IndexError异常

my_list = [1, 2, 3, 4, 5]

print(my_list[100])

elif n == 3:#NameError异常

print('不存在的变量dotcpp:', dotcpp)

try:

try:

try:

test()

except KeyError:

print('KeyError异常')

except IndexError:

print('IndexError异常')

except NameError:

print('NameError异常')

我们分别测试1/2/3,输出结果如下:有3个语句需要测试,请选择(1/2/3):1

KeyError异常

有3个语句需要测试,请选择(1/2/3):2

IndexError异常

有3个语句需要测试,请选择(1/2/3):3

NameError异常

在这个例题中,我们首先在定义的函数中输入一个判断量n,然后根据n的值给出了三种异常的情况,然后我们在最后嵌套了3个try..except语句,也就是说test()语句的结果会经过三层判断。

2. try...except...finally语句

一个完整的异常处理机制是离不开finally语句的,这个语句的作用是不管我们的程序中是否有异常发生,finally语句下的代码都会被执行,它的语法格式为:try:

block

except [typeerror]:

deal1

finally:

deal2

我们通过一个例子来看一下这种结构:def test():

n = int(input('请输入一个整数:'))

print(n)

try:

test()

except KeyError:

print('KeyError异常')

finally:

print('finally语句已执行')

我们分别输入6和dotcpp来看一下输出结果:请输入一个整数:5

5

finally语句已执行

请输入一个整数:dotcpp

finally语句已执行

Traceback (most recent call last):

File "C:/Users/test.py", line 5, in

test()

File "C:/Users/test.py", line 2, in test

n = int(input('请输入一个整数:'))

ValueError: invalid literal for int() with base 10: 'dotcpp'

通过这个例子我们可以看出,无论我们的程序是否出现异常,finally语句都会执行。

3. try...except...else语句

我们在上面学习的finally语句是无论语句是否发生异常都会执行的语句,下面我们来学习的try...except...else语句当程序中未发生异常的时候才会执行,它的语法结构为:try:

block

except [typeerror ]:

deal1

else:

deal2

下面我们看例子:def test():

n = int(input('请输入一个整数:'))

print('输入值为:',n)

try:

test()

except ValueError:

print('ValueError异常')

else:

print('当前程序未出现异常')

输出结果为:请输入一个整数:5

输入值为: 5

当前程序未出现异常

当我们输入值为dotcpp时请输入一个整数:dotcpp

ValueError异常

我们可以看出当程序异常的时候else语句并没执行,这些语句的区分难度并不大,大家可以通过例子去练习一下这几种常用的异常处理语句。

python异常处理操作语句_异常处理语句(2)相关推荐

  1. Python笔记(十五)_异常处理

    try-except语句 try: 被检测代码 except Exception [as reason]: 出现异常后的处理代码 例: >>>try: sum = 1+'1' f=o ...

  2. python编程循环语句_循环语句—Python编程从入门到精通(5)

    第6章.循环语句 在本书上一章的内容中,我们学习了实现条件判断功能的条件语句,让程序的执行顺序发生了变化.为了满足循环和跳转等功能,本章将详细讲解Python语言中循环语句的知识,主要包括for循环语 ...

  3. Java位语句_卫语句 - 宿小帅的个人空间 - OSCHINA - 中文开源技术交流社区

    1.使用卫语句取代嵌套表达式 函数中的条件逻辑使人难以看清正常的执行途径.使用卫语句表现所有特殊情况. 动机:条件表达式通常有2种表现形式.第一:所有分支都属于正常行为.第二:条件表达式提供的答案中只 ...

  4. MySQL删除空值语句_数据库语句sql 删除空记录

    最简单删除SQL Server中所有数据的方法 原文:最简单删除SQL Server中所有数据的方法 最简单删除SQL Server中所有数据的方法   编写人:CC阿爸   2014-3-14 其实 ...

  5. mysql50条必看语句_关于语句大全的10篇文章推荐

    下面小编就为大家带来一篇mysql的sql语句特殊处理语句总结(必看).小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧1.更新整张表,如果某一行数据的某一列的值为空,那么 ...

  6. mysql 预处理语句_预处理语句

    MySQL 8.0支持服务器端预处理语句.这种支持利用了有效的客户端/服务器二进制协议.对参数值使用带占位符的预处理语句具有以下好处:每次执行语句时解析语句的开销都较小.通常,数据库应用程序处理大量几 ...

  7. Python之操作Excel、异常处理、网络编程

    知识补充: 1.falsk模块中一些方法总结 import flask from flask import request,jsonify server = flask.Flask(__name__) ...

  8. for循环递减_判断语句_循环语句

    创建时间:20200418 修改时间:20200629 1. if 判断语句 1.1 if...elif...else...语句格式 Python 中 if 语句的一般形式如下所示: if 如果 &q ...

  9. java 预处理语句_预处理语句PreparedStatement到底咋用啊

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我自己试了一下直接查询id为1的语句,有一条结果出来,但是用了PreparedStatement后就没有结果了,有大佬知道为什么吗orz package ...

最新文章

  1. Hinton新论文:如何在神经网络中表示“部分-整体层次结构”?
  2. 其他系统 对外接口设计_设计模式分类及设计原则
  3. Android踩坑日记:RecyclerView中EditText和ImageView的ViewHolder复用坑
  4. 子网划分详解与子网划分实例
  5. jax-rs jax-ws_创建一个简单的JAX-RS MessageBodyWriter
  6. 为什么要用Vue.js的组件化开发
  7. 模板函数:将string类型变量转换为常用的数值类型和常用的数值类型转String
  8. crontab的使用记录
  9. linux的telnet
  10. 斗地主功能测试实战二之用例设计
  11. IS-IS加快收敛特性
  12. python保存图片的常用方法
  13. Spring Cloud Alibaba——Nacos服务配置中心
  14. 一文读懂大数据两大核心技术
  15. relative会脱离文档流吗_脱离文档流与脱离文本流
  16. 百度绿萝2.0上线后,新站该如何做SEO?
  17. http——基础知识
  18. Postgresql vacuum 和 vacuum full
  19. 电脑每个键的用处,了解一下
  20. Django Lazy LazyObject

热门文章

  1. alias--linux
  2. 申请Let's Encrypt的证书
  3. QTWebEngine的使用
  4. 在wildfly 21中搭建cluster集群
  5. scala教程之:可见性规则
  6. Leet Code OJ 28. Implement strStr() [Difficulty: Easy]
  7. Java 线程的 5 种状态
  8. Java线程池如何合理配置核心线程数
  9. 微服务架构---服务降级
  10. 容器源码分析之TreeSet(五)