视频来源:黑马程序员Python教程_600集Python从入门到精通教程(懂中文就能学会)
地址:064-异常-01-异常的概念以及抛出异常的原因_哔哩哔哩_bilibili
424- 节记录笔记
1.1 异常
1.1.1 概念
Python 解释器 在程序运行时,遇到错误会停止程序,并提示一些 错误信息
抛出异常:程序停止执行并且提示错误信息
程序开发时,很难将 所有的特殊情况 都处理的面面俱到,通过 异常捕获 可以针对突发情况做集中处理,保证程序的 稳定性和健壮性
1.1.2 捕获异常
对某些代码的执行不能确定是否正确,可以增加 try 来 捕获异常,不影响后续代码的执行
语法格式:
try:
# 不能正确的处理代码
num = int(input("请输入一个整数:"))
except:
# 错误的处理代码
print("请输入一个正确的整数")
print("-" * 50)
1.1.3 错误类型捕获
遇到不同类型的异常,并且需要 针对不同类型的异常,做出不同的响应
try:
# 提示用户输入一个整数
num = int(input("请输入一个整数:"))
# 使用 8 除以用户输入的整数并且输出
result = 8 / num
print(result)
except ValueError:
print("请输入正确的整数")
except ZeroDivisionError:
print("除0异常!")
1.1.4 捕获未知错误
预判所有的错误是有难度的,无论出现什么错误,都不希望 Python 解释器 抛出错误而终止程序,可以增加一个 except
except Exception as result
print("未知错误")
1.1.5 异常捕获完整语法
try:
# 尝试执行的代码
pass
except 错误类型1:
# 针对错误类型1,对应的代码处理
pass
except 错误类型2:
# 针对错误类型2,对应的代码处理
pass
except Exception as result:
# 打印错误信息
print(result)
else:
# 没有异常才会执行的代码
pass
finally:
# 无论是否出现错误都会执行的代码
print("无论是否出现错误都会执行的代码")
print("-" * 50)
1.1.6 异常的传递
01. 异常的传递 -- 当 函数/方法 执行 出现异常,会 将异常传递 给 函数/方法 的 调用一方
02. 如果 传递到主程序,仍然 没有异常处理,程序才会被终止
# 异常传递返回到调用函数的位置
def demo1():
return int(input("输入整数:"))
def demo2():
return demo1()
# 可以在主程序中捕获异常,利用 异常的传递 将函数中的异常传递到主程序中捕获
try:
print(demo2())
except Exception as result:
print("未知错误 %s" % result)
1.1.7 主动抛出异常
开发时遇到 特殊业务需求,希望 抛出异常,可以:
01. 创建 一个 Expection 对象
02. 使用 raise 关键字 抛出 异常对象
def input_passward():
# 1. 提示用户输入密码
pwd = input("请输入密码:")
# 2. 判断密码长度 >= 8, 返回用户输入的密码
if len(pwd) >= 8:
return pwd
# 3.如果密码 < 8, 主动抛出异常
print("主动抛出异常!!!")
# 创建异常对象 - 可以使用错误信息字符串作为参数
ex = Exception("密码长度不够")
# 主动抛出异常
raise ex
try:
print(input_passward())
except Exception as result:
print("未知错误 %s" % result)
2.1 模块
2.1.1 模块的导入
import 模块名
import 模块名
如果名字太长,可以使用 as 指定模块的名称,以方便在代码中使用
import 模块名 as 模块别名
注意:模块别名 符合 大驼峰命名法
2.1.2 from ... import 导入
希望 从某一个模块 中,导入 部分 工具,就可以使用 from ... import 的方式
import 模块名 是 一次性 把所有模块中 所有工具全部导入,并且通过 模块名/别名 访问
# 从模块 导入 某一个工具
from 模块名 import 工具名
from hm_01_测试模块1 import Dog
from hm_01_测试模块1 import say_hello
say_hello()
wangcai = Dog()
print(wangcai)