异常:
异常类型:已经存在
异常产生的时机:系统产生
如果产生异常,程序中止:程序不健壮
给程序添加异常,使程序变得健壮
try:
语句体
1/0
except 异常类型:
处理语句
except 异常类型:
处理语句
或
try:
语句体
except (异常类型1,异常类型2):
处理语句
except Exception:
所有异常
或
try:
语句体
except 异常类型 as 名称:
print(名称)
或
try:
语句体
except 异常类型 as 名称:
print(名称)
else:
没有异常才会执行的代码
在python2中,捕获所有异常的写法:
try:
except:
最终要执行的内容写在finally中:
try:
except:
else:
finally:一定会执行
练习:
定义一个方法:方法体如下,在此方法体内不进行异常处理
定义一个列表list1,通过下标访问最后一个元素,list1[len(list1)]
定义一个调用的方法:捕获异常
异常可以嵌套
自定义异常类:一般继承Exception
class sexException(Exception):
pass
def dosex():
sex=input("请输入性别:")
if sex!='男' and sex!='女':
raise sexException("性别只能为男或女")
try:
dosex()
except sexException as se:
print(se)
import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='aaa.txt',level=logging.DEBUG,format=LOG_FORMAT)
def test():
try:
a=int(input("请输入一个被除数:"))
b=int(input("请输入一个除数:"))
print(a/b)
return
except (ValueError):
#处理异常
logging.debug("只能输入数字!")
except ZeroDivisionError:
logging.info("除数不能为0")
else:
print("else...")
finally:
print("程序结束")
异常类型:已经存在
异常产生的时机:系统产生
如果产生异常,程序中止:程序不健壮
给程序添加异常,使程序变得健壮
try:
语句体
1/0
except 异常类型:
处理语句
except 异常类型:
处理语句
或
try:
语句体
except (异常类型1,异常类型2):
处理语句
except Exception:
所有异常
或
try:
语句体
except 异常类型 as 名称:
print(名称)
或
try:
语句体
except 异常类型 as 名称:
print(名称)
else:
没有异常才会执行的代码
在python2中,捕获所有异常的写法:
try:
except:
最终要执行的内容写在finally中:
try:
except:
else:
finally:一定会执行
练习:
定义一个方法:方法体如下,在此方法体内不进行异常处理
定义一个列表list1,通过下标访问最后一个元素,list1[len(list1)]
定义一个调用的方法:捕获异常
异常可以嵌套
自定义异常类:一般继承Exception
class sexException(Exception):
pass
def dosex():
sex=input("请输入性别:")
if sex!='男' and sex!='女':
raise sexException("性别只能为男或女")
try:
dosex()
except sexException as se:
print(se)
import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='aaa.txt',level=logging.DEBUG,format=LOG_FORMAT)
def test():
try:
a=int(input("请输入一个被除数:"))
b=int(input("请输入一个除数:"))
print(a/b)
return
except (ValueError):
#处理异常
logging.debug("只能输入数字!")
except ZeroDivisionError:
logging.info("除数不能为0")
else:
print("else...")
finally:
print("程序结束")