【python】【学习笔记七】异常处理机制

#try except
try:
    a = int(input("输入被除数:"))
    b = int(input("输入除数:"))
    c = a / b
    print("您输入的两个数相除的结果是:", c )
except (ValueError, ArithmeticError):
    print("程序发生了数字格式异常、算术异常之一")
except :
    print("未知异常")
print("程序继续运行")

#获取错误信息
try:
    # fis = open("a.txt");
    a = 10
    b = "a"
    c = a / b
except (TypeError,AttributeError) as e:
    print("cuowu")
    print(e.args)     # 访问异常的错误编号和详细信息
print("goon")

#raise
raise ZeroDivisionError
raise ZeroDivisionError("除数不能为零")

#详细信息
import sys
try:
    x = int(input("请输入一个被除数:"))
    print("30除以",x,"等于",30/x)
except:
    print(sys.exc_info())
    print("其他异常...")

#assert断言
assert 1 == 1
a = 2
info = "a的值不为0,a="+str(a)
assert a == 0,info

 

#doctest模块,调用testmod()执行当前py文件中含有测试的内容
#与if __name__=='__main__': 一起用,则只有直接执行该文件会进行测试
def square (x):
    '''
    一个用于计算平方的函数
    例如
    >>> square(2)
    4
    >>> square(3)
    9
    >>> square(-3)
    9
    >>> square(0)
    0
    '''
    return x * 2 # ①、故意写错的
class User:
    '''
    定义一个代表用户的类,该类包含如下两个属性:
    name - 代表用户的名字
    age - 代表用户的年龄
    例如
    >>> u = User('fkjava', 9)
    >>> u.name
    'fkjava'
    >>> u.age
    9
    >>> u.say('i love python')
    'fkjava说: i love python'
    '''
    def __init__(self, name, age):
        self.name = 'fkit' # ②、故意写错的
        self.age = age
    def say(self, content):
        return self.name + '说: ' + content
if __name__=='__main__':
    import doctest
    doctest.testmod()

#pydoc模块
# python -m pydoc 模块名
# python -m pydoc

 

上一篇:『无为则无心』Python面向对象 — 57、类属性和实例属性


下一篇:Python学习笔记:实现哑变量编码