if 2 > 1
print(222)
# 未加冒号
dic = {"name"; "alex"}
# 字典中用冒号分隔键和值
tu = (2,3,4!5)
# 元组中用逗号相隔
num = int(input("请输入数字"))
# 输入数字以外的内容,无法整型化,报错
dic = {"name": "海狗", "age": 18}
dic["hobby"]
# dic字典中没有["hobby"], 找不到报错
try:
num = int(input('>>>'))
print(111)
except ValueError:
print(666)
# input输入字符串类型的数字时, 输出111
# input输入字符串类型的非数字时, 输出666
try:
dic = {'name': '嘉欣'}
print(dic['age']) # 出现KeyError时 直接跳转except
num = int(input('>>>'))
print(111)
except KeyError:
print(555)
try:
num = int(input(">>>")) # 出现ValueError错误时, 直接跳转except
dic = {"name": "嘉欣"}
print(dic["age"])
print(111)
except ValueError:
print(666)
try:
num = int(input(">>>"))
dic = {"name": "嘉欣"}
print(dic['age'])
l1 = [1,2]
print(l1[100])
print(111)
except ValueError:
print("输入的有非数字元素")
except KeyError:
print("没有此键")
except IndexError:
print("没有此下标")
print(666)
try:
dic = {"name": "嘉欣"}
print(dic["age"])
l1 = [1,2]
print(l1[100])
print(111)
for i in 123:
pass
except Exception:
print(666)
# 有异常直接跳转except
try:
dic = {"name": "嘉欣"}
# print(dic["age"])
l1 = [1,2]
# print(l1[100])
print(111)
for i in 123:
pass
except Exception as e:
print(e)
# 捕捉异常并打印出异常原因
什么时候用万能? 什么时候用多分支?
如果你对错误信息不关心, 只是想排除信息继续让程序走下去, 用万能异常.
你对错误信息要进行明确的分流, 让你的程序多元化开发.
def func():
pass
def func1():
pass
dic = {1: func,
2: func1}
try:
num = int(input("请输入序号"))
dic[num]()
except ValueError:
print("请输入数字")
except KeyError:
print("请输入范围内数字")
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("程序出现了意料之外的错误...")
try:
dic = {"name": "嘉欣"}
print(dic["age"])
l1 = [1, 2]
print(l1[100])
print(111)
except KeyError:
print("没有此键")
except IndexError:
print("没有此下标")
else:
print("如果没有出现异常则执行这里")
finally:
print("finally 666")
# except 必须依赖于try, else必须依赖于except和try
# finally只是依赖于try
# finally : 在异常出现之前, 执行finally
try:
dic = {"name": "嘉欣"}
print(dic["age"])
l1 = [1,2]
print(l1[100])
except KeyError:
print("没有此键")
except IndexError:
print("没有此下标")
except Exception:
pass
print(111)
finally:
print("finally 666")
# finally 关闭数据库连接, 文件句柄关闭,数据保存等时,用到finally
# 在return 结束函数之前, 执行finally代码
def func():
try:
print(111)
return 666
finally:
print(222)
print(func())
"""
111
222
666
"""
raise ValueError("出现了value错误")
assert 条件
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)
原文:https://www.cnblogs.com/beichen123/p/11342254.html