异常处理 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 ...
随机推荐
- AGC009C Division into Two
题意 有\(n\)个严格升序的数,请你分成两个集合\(A\)和\(B\),其中一个集合任意两数之差不小于\(x\),另一集合任意两数之差不小于\(y\). 问方案数,集合可以为空. $n \le 10 ...
- pwn学习日记Day7 基础知识积累
知识杂项 strncpy(char s1,const char s2,int n); 其中有三个参数分别表示目标字符串s1,源字符串s2,拷贝长度.意思是将s2指向的字符串的前n个长度的字符放到s1指 ...
- Ubuntu下制作deb包的方法详解
1 认识deb包 1.1 认识deb包 deb是Unix系统(其实主要是Linux)下的安装包,基于 tar 包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组. 由于 Unix ...
- Python全国二级等级考试(2019)
一.前言 2018年9月随着全国计算机等级考试科目中加入“二级Python”,也确立了Python在国内的地位,猪哥相信Python语言势必会像PS那般普及.不久的将来,谁会Python谁就能获得女神 ...
- HearthBuddy 召唤随从的问题
代码如下,在SilverFish\SilverFish\ai\Playfield.cs文件中 public void callKid(CardDB.Card c, int zonepos, bool ...
- Facebook币Libra学习-4.新的智能合约语言Move入门
Move是一种新的编程语言,旨在为Libra Blockchain提供安全可编程的基础.Libra Blockchain中的帐户是任意数量的Move资源和Move模块的容器.提交给Libra Bloc ...
- LC 987. Vertical Order Traversal of a Binary Tree
Given a binary tree, return the vertical order traversal of its nodes values. For each node at posit ...
- SQL-W3School-高级:SQL FULL JOIN 关键字
ylbtech-SQL-W3School-高级:SQL FULL JOIN 关键字 1.返回顶部 1. SQL FULL JOIN 关键字 只要其中某个表存在匹配,FULL JOIN 关键字就会返回行 ...
- springboot之activemq安装与实践
环境:腾讯云centos7 注意:activemq安装插件,可能会报错.本人是主机名的问题,所以修改了主机名. vim /etc/hosts vim /etc/hostname 修改这两个文件,并重启 ...
- 启动Spring boot报错:nested exception is java.sql.SQLException: Field 'id' doesn't have a default value
先看具体日志: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with n ...