异常处理 try
语法错误
这种错误的不能使用异常处理,你自己粗心写错怪谁,哼哼哼
比如说少冒号啦,丢了括号啦
逻辑错误
try:
num = int(input("请输入数字"))
print(111)
except ValueError:
print(666)
# 输入 1q
# 输出 666
结构一 : 单分支
try:
num = int(input("请输入数字:"))
# 出现 ValueError 错误之后,直接跳到 except 语句
dic = {'name':"海狗"}
print(dic['age'])
print(111)
except ValueError:
print(666)
''''
请输入数字:1q
666
'''
**结构二 : 多分支 **
try:
num = int(input('请输入数字:'))
# 输入的时候 出现ValueError
# 错误之后,直接跳转到except 语句
dic = {'name':'嘉欣'}
print(dic['age'])
l1 = [1,2]
print(l1[100])
print(111)
except ValueError:
print("输入的有非数字元素")
except KeyError:
print('没有此键')
except IndexError:
print('没有此下标')
print(666)
'''
请输入数字:1 去
输入的有非数字元素
666
'''
结构三 : 万能异常 处理所有 Python识别的异常
try:
dic = {'name':'海狗'}
# print(dic['age'])
l1 = [1,2]
print(l1[100])
print(111)
for i in 123: # 'int' object is not iterable
pass
except Exception as e:
print(e)
print(666)
''''
list index out of range
666
直接说明错的原因了
'''
还挺好玩的
什么时候用万能 ? 什么时候用分支 ?
万能 : 如果你对错误信息不关心,只是想要排除错误让程序继续运行. 用万能异常.
分支 : 你对错误信息要进行明确的分流,让你的程序多元化开发.
结构四 : 多分支加万能异常
def func():
pass
def func1():
pass
dic = {
1 : func,
2 : func1
}
try:
num = int(input('请输入序号:'))
dic[num]()
except ValueError:
print("请输入数字:")
except KeyError:
print("请输入范围内的序号")
except Exception:
print('程序出现意料之外的错误')
'''
请输入序号:111
请输入范围内的序号
'''
结构5 : try else finally
except 必须依赖于try, else必须依赖于except和try
# finally只是依赖于try.
在 return 结束函数之前,执行 fially 代码
def func():
try:
print(111)
return 555
finally:
print(222)
print(func())
'''
111
222
555
'''
结构六 : 主动触发异常
raise ValueError('出现了value错误')
结构7: 断言: 展现出一种强硬的态度.
name = 'alex'
n1 = input('请输入:')
assert name == n1
print(111)
print(222)
这是啥意思啊,完全不懂呀输入直接就报错
自定义异常
Python 中给你提供的错误很多,但不是全部的错误
class LiYeError(BaseException):
def __init__(self,msg):
self.msg = msg
def __str__(self):
return self.msg
try:
raise LiYeError('socket.connent.....')
except LiYeError as e:
print(e)
# socket.connent.....
异常处理 try的更多相关文章
- 关于.NET异常处理的思考
年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java与.net的博文出现,我表示要作为一个吃瓜群众,静静的 ...
- 基于spring注解AOP的异常处理
一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...
- 异常处理汇总 ~ 修正果带着你的Net飞奔吧!
经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- IL异常处理
异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...
- Spring MVC重定向和转发以及异常处理
SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...
- 【repost】JS中的异常处理方法分享
我们在编写js过程中,难免会遇到一些代码错误问题,需要找出来,有些时候怕因为js问题导致用户体验差,这里给出一些解决方法 js容错语句,就是js出错也不提示错误(防止浏览器右下角有个黄色的三角符号,要 ...
- 札记:Java异常处理
异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...
- 关于bug分析与异常处理的一些思考
前言:工作三年了,工作内容主要是嵌入式软件开发和维护,用的语言是C,毕业后先在一家工业自动化控制公司工作两年半,目前在一家医疗仪器公司担任嵌入式软件开发工作.软件开发中,难免不产生bug:产品交付客户 ...
- ABP(现代ASP.NET样板开发框架)系列之23、ABP展现层——异常处理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之23.ABP展现层——异常处理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...
随机推荐
- redis之基础命令
一.redis介绍 1.redis特性 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件 redis是c语言编写的,支持数据持久化,是key-val ...
- JavaWeb_(Spring框架)Spring与JDBC
一.用Spring中的JdbcTemplate操作数据库 在MySQL中准备一个user表,表中增加一条假数据 用Spring中的JdbcTemplate操作数据库,在JdbcTemplate中实现增 ...
- spring boot处理跨域
使用重写WebMvcConfigurer的方式 @Component public class WebMvcConfig extends WebMvcConfigurationSupport { @O ...
- windows下安装node.js及环境配置、部署项目
windows下安装node.js及环境配置.部署项目 一.总结 一句话总结: 安装nodejs软件:就像普普通通的的软件那样安装 配置nodejs安装的全局模块的环境变量 并且安装cnpm(比如cn ...
- 阶段5 3.微服务项目【学成在线】_day04 页面静态化_24-页面预览-页面预览测试
通过nginx转发到预览的地址 重启nginx 添加页面预览按钮 调整下列表的列的宽度
- [Scikit-learn] *2.3 Clustering - DBSCAN: Density-Based Spatial Clustering of Applications with Noise
http://scikit-learn.org/stable/modules/generated/sklearn.cluster.DBSCAN.html#sklearn.cluster.DBSCAN ...
- Shell脚本执行的四种方法
(1).bash(或sh) [脚本的相对路径或绝对路径] [xf@xuexi ~]$ cat a.sh #!/bin/bash echo "hello world!" [xf@xu ...
- Salesforce LWC学习(九) Quick Action in LWC
我们在lightning开发中,quick action是一个常用的功能,很可惜的是,lwc目前还不支持单独的custom quick action操作,只能嵌套在aura中使用才能发挥作用. 官方也 ...
- RocketMQ搭建-WEB集成RMQ-SE集成RMQ
坑一 https://blog.csdn.net/c_yang13/article/details/76836753 JAVAWEB集成RMQ https://www.cnblogs.com/yun9 ...
- js 基本类型与引用类型的存储
js的变量类型分为基本数据类型和引用数据类型 7种基本数据类型:null, undefined, number, boolean, string(大多数语言中string属于引用数据类型,而在js中它 ...