python异常处理

简介: python异常处理

python 中常见的异常


image.png


try…except语句


try:
  block1                              # 表示可能出现异常的代码块
except[ExceptionName[as alias]]:        # ExceptionName 表示要捕获的异常的名称   as alias  表示当前的异常的另一个别名
  block2                              # 执行except后可执行的语句


try…except…else


try:
  block1                              # 表示可能出现异常的代码块
except[ExceptionName[as alias]]:        # ExceptionName 表示要捕获的异常的名称   as alias  表示当前的异常的另一个别名
  block2                              # 执行except后执行的语句
else:                                   # 没有抛出异常时执行
  block3                             


try…except…finally语句


try:
  block1                              # 表示可能出现异常的代码块
except[ExceptionName[as alias]]:        # ExceptionName 表示要捕获的异常的名称   as alias  表示当前的异常的另一个别名
  block2                              # 执行except后执行的语句
finally:                                # 无论是否抛出异常都会执行
  block3


raise语句


raise [ExceptionName[(reason)]]         # ExceptionName 表示要捕获的异常的名称


ExceptionName(reason) 中的(reason)可以省略,如果省略在抛出异常时将不会有任何描述信息

练习

模拟分苹果


def division():
    '''功能:分苹果'''
    print("======分苹果啦=======")
    apples = int(input("请输入苹果的个数:"))      # 输入苹果的个数
    children = int(input("请输入孩子的个数"))     # 输入孩子的个数
    result = apples//children                  # 计算每一个人能分多少个
    remain = apples%children                   # 计算剩余多少个苹果
    if apples < children:
        raise ValueError("苹果太少了不够分")       #使用reise语句抛出异常
    if remain > 0:
        print(apples,"苹果",children,"孩子,每一个人分",result,"还剩",remain,"个苹果")
    else:
        print(apples,"苹果",children,"个孩子,每人分",result,"还剩",remain,"个苹果")
if __name__ == '__main__':
    try:                                      # 捕获异常
        division()                            # 调用division()函数(分苹果的函数)
    except ZeroDivisionError:                 # 处理ZeroDivisionError异常(除数为0引发的错误)
        print("\n出错了,苹果不能被零个小朋友分")
    except ValueError as e:                   # 处理ValueError异常(传入值的错误)
        print("出错了",e)
    else:                                     # 没有任何异常时执行
        print("分苹果顺利完成")
    finally:                                  # 无论是否抛出异常都执行
        print("进行了一次分苹果")
相关文章
|
5天前
|
程序员 开发者 Python
Python网络编程基础(Socket编程) 错误处理和异常处理的最佳实践
【4月更文挑战第11天】在网络编程中,错误处理和异常管理不仅是为了程序的健壮性,也是为了提供清晰的用户反馈以及优雅的故障恢复。在前面的章节中,我们讨论了如何使用`try-except`语句来处理网络错误。现在,我们将深入探讨错误处理和异常处理的最佳实践。
|
5天前
|
Python
python基础篇:如何把异常处理做的更加优雅
python基础篇:如何把异常处理做的更加优雅
21 2
|
5天前
|
安全 程序员 Python
Python中的异常处理与错误调试
【4月更文挑战第8天】本文探讨Python中的异常处理和错误调试,将其比喻为驾驶过程中的意外情况。异常是程序执行时的非正常事件,如文件缺失或网络故障,而错误是代码本身的逻辑或语法问题。Python通过try-except语句处理异常,确保程序在遇到问题时不会立即崩溃。错误调试则需定位问题根源,利用pdb等工具逐行检查代码。这两个技能对保持代码稳定性和可靠性至关重要,能增强程序应对意外的能力并帮助修复潜在问题。
|
5天前
|
索引 Python
python异常处理
python异常处理
|
3天前
|
人工智能 数据挖掘 索引
Python中的异常处理
异常是程序执行过程中不可避免的出错情况,而在Python中,通过使用异常处理机制可以有效地应对这些异常情况。本文将介绍Python中的异常处理机制,并讲解如何使用try-except代码块来捕获和处理异常。
|
5天前
|
开发者 Python
【Python 基础】Python中的异常处理是如何进行的?
【5月更文挑战第8天】【Python 基础】Python中的异常处理是如何进行的?
|
5天前
|
Python
Python 中的异常处理机制是一种强大的错误处理工具
【5月更文挑战第8天】Python的异常处理机制借助try/except结构管理错误,提高程序健壮性。异常是中断正常流程的问题,可由多种原因引发。基本结构包括try块(执行可能出错的代码)和except块(处理异常)。通过多个except块可捕获不同类型的异常,finally块确保无论是否异常都执行的代码。此外,raise语句用于主动抛出异常,自定义异常通过继承Exception类实现。with语句配合上下文管理器简化资源管理并确保异常情况下资源正确释放。
21 2
|
5天前
|
程序员 开发者 Python
Python中的异常处理技巧与最佳实践
异常处理在Python编程中至关重要,它能够有效地帮助开发人员识别和解决程序中的错误。本文将介绍Python中常见的异常类型,探讨异常处理的最佳实践,并提供一些实用的技巧,帮助开发者编写更健壮的代码。
|
5天前
|
存储 测试技术 数据库连接
Python异常处理
【5月更文挑战第1天】在Python编程中,异常处理是构建健壮代码的关键。本文介绍了异常处理基础,包括`try`、`except`、`finally`和`raise`关键字的使用。通过示例展示了如何捕获和处理`ZeroDivisionError`等特定异常,以及如何利用`finally`确保资源清理。此外,还分享了最佳实践,如明确指定异常类型、避免捕获所有异常、使用`finally`进行资源清理和记录异常信息。
18 6
|
5天前
|
Java 编译器 数据库
Python的异常处理
Python的异常处理