python基础之错误和异常处理
作者:qianqqqq_lu 发布时间:2021-07-28 05:46:15
标签:python,基础,错误,异常处理
import Exception
# except 在捕获错误异常的时候 是要根据具体的错误类型来捕获的
# 用一个块 可以捕获多个不同类型的异常
# EXception 可以捕获所有异常 当对出现的问题或者错误不确定的情况下 可以使用此种
print(dir(Exception))
try:
# print(b) #捕获逻辑的代码
li=[1,2,3,4]
print(li[10])
pass
except NameError as msg:
# 捕获到的错误 才会在这里执行
print(msg)
pass
except IndexError as msg:
print(msg)
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
try:
# print(b) #捕获逻辑的代码
# li=[1,2,3,4]
# print(li[10])
a=10/0
pass
except NameError as msg:
# 捕获到的错误 才会在这里执行
print(msg)
pass
except IndexError as msg:
print(msg)
pass
except ZeroDivisionError as msg:
print(msg)
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
异常类型
try:
print(b) #捕获逻辑的代码
# li=[1,2,3,4]
# print(li[10])
# a=10/0
pass
# except NameError as msg:
# # 捕获到的错误 才会在这里执行
# print(msg)
# pass
# except IndexError as msg:
# print(msg)
# pass
# except ZeroDivisionError as msg:
# print(msg)
# pass
except Exception as msg:
print(msg)
pass
print('初次接触异常')
print('HAHAHAHAHHAHAHAH')
def A(s):
return 10/int(s)
pass
def B(s):
return A(s)*2
def main():
try:
B('0')
pass
except Exception as msg:
print(msg)
pass
pass
main()
# 不需要在每个可能出错的地方去捕获,只要在合适的层次去捕获错误就可以了 这样的话 就大大减少我们写try----exception的麻烦
# 异常的抛出机制
#如果在运行时发生异常 解释器会查找相应的异常捕获类型
#如果在当前函数里面没有找到的话 它会将异常传递给上层的调用函数
#如果在最外层 没有找到的话 解释器就会退出 程序down掉
class ToolongmyException(Exception): #自定义异常
def __init__(self,leng):
'''
:param leng:长度
'''
self.len=leng
pass
def __str__(self):
return '您输入的数据长度是'+str(self.len)+'已经超过长度了'
pass
def name_Test():
name=input('请输入姓名:')
if len(name)>5:
raise ToolongmyException(len(name)) #抛出异常
else:
print(name)
pass
pass
name_Test()
class ToolongmyException(Exception): #自定义异常
def __init__(self,leng):
'''
:param leng:长度
'''
self.len=leng
pass
def __str__(self):
return '您输入的数据长度是'+str(self.len)+'已经超过长度了'
pass
def name_Test():
name=input('请输入姓名:')
try:
if len(name)>5:
raise ToolongmyException(len(name)) #抛出异常
else:
print(name)
pass
except ToolongmyException as result:
print(result)
pass
finally:
print('执行完毕了')
pass
name_Test()
来源:https://blog.csdn.net/weixin_44632711/article/details/120705665


猜你喜欢
- 各位工程师累了吗? 推荐一篇可以让你技术能力达到出神入化的网站"持久男"1.二维绘图a. 一维数据集用 Numpy nd
- IE8正式版已经发布了。本篇文章不会非常扯蛋地去进行什么评测,然后给出什么“Chrome运行JavaScript能力是IE8的15倍”、什么
- 我使用的 Pandas 版本如下,顺便也导入 Pandas 库。>>> import pandas as pd>&g
- 安装npm1、检查node,未安装在这里下载最新版安装。2、检查npm,node自带npm但不是最新版本,需要命令更新:npm instal
- 此命令作用,修改数据表ff_vod,在vod_url字段内容后加入999999999。update ff_vod set vod_url=C
- 1、查找表结构,判断要加入的列是否已存在2、如果不存在,则执行添加 CREATE PROCEDURE `mysql_sp_add_
- 属性多层数组数据的添加修改为什么需要使用Vue.set?vue中不能检测到数组的一些变化比如一下两种:1、数组长度的变化 vm.arr.le
- 我就废话不多说了,大家还是直接看代码吧!def iou(y_true, y_pred, label: int): "&
- 如果直接对大文件对象调用 read() 方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。即通过yield。
- 我们现在使用的验证手段都是以验证码为主,让用户根据图片输入验证字符,这种方法的安全度尚可,但会给用户带来一些不便和困扰,比如这个雅虎的验证码
- 1、plt.legendplt.legend(loc=0)#显示图例的位置,自适应方式说明:'best' :
- 在升级批处理sql脚本的时候,由于各种编写的不规范、不可重复执行,我们通常希望在sql脚本出错后不中止,而是执行完成。虽然这些问题可通过编写
- 通过urllib2、re模块抓种子思路1.用程序登录论坛(如果需要登录才能访问的版块)2.访问指定版块3.遍历帖子(先取指定页,再遍历页面所
- Django的View一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。响应可以是一张
- 使用vue去请求接口发现问题来了:我请求只能请求一次,然后在按按钮去请求的时候发现502(这个是接口定义的)502就是传了空的值过来 这个是
- golang 中多个 defer 的执行顺序引用 Ture Go 中的一个示例:package mainimport "fmt&q
- 1. *表示匹配任意多个字符 \d*表示匹配任意多个数字字符import retext = "
- 中间那个控制块,其实也是一个iframe,把他的宽度定义为10。 然后在他的内部js,控制 左右2个iframe. functio
- 本文实例为大家分享了php微信公众号获取位置信息的具体代码,供大家参考,具体内容如下<?php/** * wechat php tes
- ASP正则表达式,RegExp对象提供简单的正则表达式支持功能。RegExp对象的用法: Function RegExpTest(