语法错误

这种错误的不能使用异常处理,你自己粗心写错怪谁,哼哼哼

比如说少冒号啦,丢了括号啦

逻辑错误

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的更多相关文章

  1. 关于.NET异常处理的思考

    年关将至,对于大部分程序员来说,马上就可以闲下来一段时间了,然而在这个闲暇的时间里,唯有争论哪门语言更好可以消磨时光,估计最近会有很多关于java与.net的博文出现,我表示要作为一个吃瓜群众,静静的 ...

  2. 基于spring注解AOP的异常处理

    一.前言 项目刚刚开发的时候,并没有做好充足的准备.开发到一定程度的时候才会想到还有一些问题没有解决.就比如今天我要说的一个问题:异常的处理.写程序的时候一般都会通过try...catch...fin ...

  3. 异常处理汇总 ~ 修正果带着你的Net飞奔吧!

    经验库开源地址:https://github.com/dunitian/LoTDotNet 异常处理汇总-服 务 器 http://www.cnblogs.com/dunitian/p/4522983 ...

  4. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  5. IL异常处理

    异常处理在程序中也算是比较重要的一部分了,IL异常处理在C#里面实现会用到一些新的方法 1.BeginExceptionBlock:异常块代码开始,相当于try,但是感觉又不太像 2.EndExcep ...

  6. Spring MVC重定向和转发以及异常处理

    SpringMVC核心技术---转发和重定向 当处理器对请求处理完毕后,向其他资源进行跳转时,有两种跳转方式:请求转发与重定向.而根据要跳转的资源类型,又可分为两类:跳转到页面与跳转到其他处理器.对于 ...

  7. 【repost】JS中的异常处理方法分享

    我们在编写js过程中,难免会遇到一些代码错误问题,需要找出来,有些时候怕因为js问题导致用户体验差,这里给出一些解决方法 js容错语句,就是js出错也不提示错误(防止浏览器右下角有个黄色的三角符号,要 ...

  8. 札记:Java异常处理

    异常概述 程序在运行中总会面临一些"意外"情况,良好的代码需要对它们进行预防和处理.大致来说,这些意外情况分三类: 交互输入 用户以非预期的方式使用程序,比如非法输入,不正当的操作 ...

  9. 关于bug分析与异常处理的一些思考

    前言:工作三年了,工作内容主要是嵌入式软件开发和维护,用的语言是C,毕业后先在一家工业自动化控制公司工作两年半,目前在一家医疗仪器公司担任嵌入式软件开发工作.软件开发中,难免不产生bug:产品交付客户 ...

  10. ABP(现代ASP.NET样板开发框架)系列之23、ABP展现层——异常处理

    点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之23.ABP展现层——异常处理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...

随机推荐

  1. 8月清北学堂培训 Day6

    今天是杨思祺老师的讲授~ 图论 双连通分量 在无向图中,如果无论删去哪条边都不能使得 u 和 v 不联通, 则称 u 和 v 边双连通: 在无向图中,如果无论删去哪个点(非 u 和 v)都不能使得 u ...

  2. vmware 安装 VMwareTools

    mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom cd /mnt/cdrom cp VMwareTools-x.x.x-yyyy.tar.gz ~/ cd ~ ...

  3. leveldb源码分析之内存池Arena

    转自:http://luodw.cc/2015/10/15/leveldb-04/ 这篇博客主要讲解下leveldb内存池,内存池很多地方都有用到,像linux内核也有个内存池.内存池的存在主要就是减 ...

  4. ICEM—气体罐子

    原视频下载地址:https://yunpan.cn/cPfzaLzkcFXVK  访问密码 62cf

  5. Java并发指南6:Java内存模型JMM总结

    本文转载自互联网,侵删   在前面的文章中我们介绍了Java并发基础和线程安全的概念,以及JMM内存模型的介绍,包括其定义的各种规则.同时我们也介绍了volatile在JMM中的实现原理,以及Lock ...

  6. 我的新书,ArcGIS从0到1,京东接受预定,有160个视频,851分钟

     我的新书,ArcGIS从0到1,京东接受预定,8月08日至08月16日发货https://item.jd.com/53669213250.html当当网 http://product.dangdan ...

  7. JAVA-Thread 线程的几种状态

    Oracle JDK 定义中,线程一共有六种状态 https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html NEW:未 ...

  8. C#winform和百度API互动-----之JS读取中C#中的函数

    例子1 线上JS var getcpylocation =window.external.getlocation(); map.centerAndZoom(getcpylocation,12); C# ...

  9. apt如何列出所有已经安装的软件包

    apt如何列出所有已经安装的软件包 转 https://www.helplib.com/ubuntu/article_155294 问题: 我想将所有已安装软件包的列表输出到文本文件中,以便我可以查看 ...

  10. error C2086: “int WINGDIAPI”: 重定义

    1>------ 已启动生成: 项目: OSG_3_1_osgViewer应用基础, 配置: Debug x64 ------1>cl : 命令行 warning D9002: 忽略未知选 ...