码迷,mamicode.com
首页 > 其他好文 > 详细

异常、异常处理、断言

时间:2018-08-28 17:52:36      阅读:131      评论:0      收藏:0      [点我收藏+]

标签:包含   dex   通过   index   逻辑   断点调试   检查   生成器   typeerror   

一、异常
# help(BaseException) # help():一个帮助类,查看帮助信息。回车键继续,q键退出。
# Python中所有的异常,都是继承自 BaseException 类,其直接分为四大类:
# 1.SystemExit:Python 退出异常
# 2.KeyboardInterrupt 键盘打断
# 3.GeneratorExit 生成器退出
# 4.Exception 普通异常(只会使用这部分的异常)
# 异常都是类
# 错误回溯
# 查看报错要查看报错原因、报错的行,以及执行的代码,通过错误回溯,可以直接查看到这些内容

# 异常分为两种:1、语法错误 2、普通异常
# 在程序代码执行之前会先检查一遍语法错误,如果语法没有问题,才会去运行代码,如果语法有问题,代码就不会执行



二、异常处理
try...except...
# 让出现异常后,程序还能继续运行,减少异常带来的损失
try: # 这里面放可能出问题的代码
a = 1 + ‘123‘
b = (5/0)
print(123)
except TypeError as e: # 下面写捕获到异常的处理方案
print(‘老哥有问题‘,e.__class__.__name__) # __class__和__name__是特殊属性,不是私有属性
print(e) # 上面打印出错误类型,本行是打印错误内容
except NameError as e:
print(e)
except IndexError:
pass
except Exception as e: # Exception 包含了所有的错误类型,最后加上这条,就可以抓住所有的异常了
print(e) # 代码中出现的异常都是 Exception的子类 但语法错误是抓不到的,
# 因为程序运行前先检查语法错误,没有语法问题后才运行程序。
else: # try下面没有代码错误,执行else里的内容
print(‘没事没事‘)
finally: # 无论try里面有没有异常,都会执行这里的内容
print(‘啦啦啦‘)


b = ‘赚了十万‘
print(b)

# 第二种捕获多种错误的方法:在except(TypeError,NameError,...)的里面放多种错误的类名。

# try...except...的运行逻辑,类似于if...else...的逻辑,因此在捕获过程中,会从上到下依次对比异常,
# 找到后就不会再往下查找了。因此上面例中没有出现除数为0的错误。


# 自定义异常
class MyError(Exception):
pass

try:
a = 1 + 1
raise MyError # 关键字 抛出异常 这里是主动抛出自定义异常
except MyError as e:
print(e.__class__.__name__)

print(‘哈哈哈‘)




三、断言 assert
断言语句是讲调试断言插入程序的一种便捷方式
a = 1
b = 2
assert a == b,‘报错了‘ # 关键字 可用于断点调试 表达式False报AssertionError的错误类型。
print(‘123‘)




四、拓展
# 1. 返回布尔类型的表达式:
if True: # True 非0、非空;0 [] () {} set() ‘‘ None等一些空的东西的值都为Fasle
print(‘True‘)
else:
print(‘False‘)
‘‘‘
# 2. if__name__ == ‘__main__‘

class A:
pass
print(A) # 这里输出的是文件本身

if __name__ == ‘__main__‘: # 判断name是不是本身这个文件的名字
print(123)

# 模块 就是py文件
import test # 模块在导入的时候会运行一遍 如果不希望这样的结果,
# 可以用__name__ == ‘__main__‘语句来做判断,写在被导入的文件中,起到保护作用。
print(‘啦啦啦‘)

异常、异常处理、断言

标签:包含   dex   通过   index   逻辑   断点调试   检查   生成器   typeerror   

原文地址:https://www.cnblogs.com/nealxyz/p/9549525.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!