Python和Linux学习笔记(更新中)

视频来源:黑马程序员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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值