首页 > 编程语言 > 详细

Python笔记(三)

时间:2019-06-22 10:37:13      阅读:113      评论:0      收藏:0      [点我收藏+]

一、异常

1、异常的概念

在程序运行时,Python解释器遇到错误就会停止执行,并提示一些错误信息,这就是异常,我们称这个动作为抛出(raise)异常

程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发事件做集中的处理,从而保证程序的 稳定性和健壮性

捕获异常:

try:

  尝试执行的代码

except:

  出现错误的处理

try:
    num = int(input("输入一个整数:"))
    print(num)
except:
    print("请输入整数!")

 

2、错误类型捕获

try:
    # 尝试执行的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的代码处理
    pass
except (错误类型2, 错误类型3):
    # 针对错误类型2 和 3,对应的代码处理
    pass
except Exception as result:
    print("未知错误 %s" % result)
try:
    num = int(input("请输入整数:"))
    result = 8/num
    print("计算结果:%.2f" % result)
except ValueError:
    print("请输入正确的整数")
except ZeroDivisionError:
    print("除0错误")
except Exception as result:
    print("未知错误 %s" % result)

 

3、异常捕获完整语法

try:
    # 尝试执行的代码
    pass
except 错误类型1:
    # 针对错误类型1,对应的代码处理
    pass
except 错误类型2:
    # 针对错误类型2,对应的代码处理
    pass
except (错误类型3, 错误类型4):
    # 针对错误类型3 和 4,对应的代码处理
    pass
except Exception as result:
    # 打印错误信息
    print(result)
else:
    # 没有异常才会执行的代码
    pass
finally:
    # 无论是否有异常,都会执行的代码
    print("无论是否有异常,都会执行的代码")

else 只有在没有异常时才会执行的代码

finally 无论是否有异常,都会执行的代码

 

4、异常的传递

异常会传递给函数的调用一方,直到传递到主程序,如果仍没有异常处理,程序会被终止;

开发时可以在主程序中增加异常捕获,这样其他函数的异常都会传递到主程序,保证代码简洁;

def demo1():
    return int(input("请输入整数:"))


def demo2():
    demo1()


try:
    demo2()
except ValueError:
    print("输入的不是整数!")
except Exception as result:
    print("未知错误 %s" % result)

 

5、主动raise异常

Python 中提供了一个 Exception 异常类

在开发时,如果满足 特定业务需求时,希望 抛出异常,可以:

  创建 一个 Exception 的 对象

  使用 raise关键字 抛出 异常对象

def input_password():
    pwd = input("输入密码:")
    if len(pwd) >= 8:
        return pwd
    # 密码小于8位,抛出异常
    # 1.创建异常对象
    ex = Exception("密码长度不够")
    # 2.主动抛出异常
    raise ex


try:
    print(input_password())
except Exception as result:
    print("出现错误:%s" % result)

 

二、模块

1、

 

Python笔记(三)

原文:https://www.cnblogs.com/ysysyzz/p/11067524.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!