就是在开发的过程中会发生一些错误,这些错误统称为“异常”
try:
block1
except [ExceptionName [as alias]]:
block2
if __name__ == '__main__':
try:
print(10 / 0)
except:
print("捕获成功")
>>>
捕获成功
esle 语句相当于没有发生异常所要处理的语句
if __name__ == '__main__':
try:
print(10 / 1)
except:
print("捕获成功")
else:
print("没有发生异常")
>>>
10.0
没有发生异常
esle 语句相当于没有发生异常所要处理的语句
if __name__ == '__main__':
try:
print(10 / 1)
except:
print("捕获成功")
finally:
print("不论发生异常都要执行")
>>>
10.0
不论发生异常都要执行
if __name__ == '__main__':
try:
print(10 / 0)
except:
print("捕获成功")
finally:
print("不论发生异常都要执行")
>>>
捕获成功
不论发生异常都要执行
语法:
raise [ExceptionName [(reason)]]
[ExceptionName [(reason)]]
可选参数,用于指定抛出的异常名称,以及异常信息的相关描述。如果省略就会把当前的错误原样抛出
if __name__ == '__main__':
raise ValueError("分母不能为0")
这里就不介绍各个编译器的断点和debug调试了
语法:
assert experssion[,reason]
experssion: 条件表达式
reason 可选参数,理由
if __name__ == '__main__':
apple = 10
children = 5
assert apple > children,("苹果够分了")
>>>
assert apple < children,"苹果够分了"
AssertionError: 苹果够分了
通常assert配合try except 使用
def test():
apple = int(10)
children = int(5)
assert apple < children,"苹果够分了"
if __name__ == '__main__':
try:
test()
except AssertionError as e:
print("判断到出错了",e)
>>>
>判断到出错了 苹果够分了