Python基础学习:try...except...的详细用法

这篇具有很好参考价值的文章主要介绍了Python基础学习:try...except...的详细用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except

1.异常类只能来处理指定的异常情况,如果非指定异常则无法处理

s1 = 'hello'
try:
    int(s1)
except IndexError as e: # 未捕获到异常,程序直接报错
    print (e)

2.多分支

s1 = 'hello'
try:
    int(s1)
except IndexError as e:
    print(e)
except KeyError as e:
    print(e)
except ValueError as e:
    print(e)

3.万能异常Exception

s1 = 'hello'
try:
    int(s1)
except Exception as e:
    print(e)

4.多分支+Exception

s1 = 'hello'
try:
    int(s1)
except IndexError as e:
    print(e)
except KeyError as e:
    print(e)
except ValueError as e:
    print(e)
except Exception as e:
    print(e)

5.异常的其他机构(try…finally语法)

try…finally语句无论是否发生异常都将会执行最后的代码。

语法如下:

try:
<语句>
finally:
<语句>    #退出try时总会执行
raise

示例:

s1 = 'hello'
try:
    int(s1)
except IndexError as e:
    print(e)
except KeyError as e:
    print(e)
except ValueError as e:
    print(e)
#except Exception as e:
#    print(e)
else:
    print('try内代码块没有异常则执行我')
finally:
    print('无论异常与否,都会执行该模块,通常是进行清理工作')

6.主动触发异常(raise语句)

我们可以使用raise语句自己触发异常,raise语法格式如下:

raise [Exception [, args [, traceback]]]

语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

示例:

一个异常可以是一个字符串,类或对象。 Python的内核提供的异常,大多数都是实例化的类,这是一个类的实例的参数。

定义一个异常非常简单,如下所示:

def functionName( level ):
    if level < 1:
        raise Exception("Invalid level!", level)
        # 触发异常后,后面的代码就不会再执行      
try:
    raise TypeError('类型错误')
except Exception as e:
    print(e)

7.自定义异常

通过创建一个新的异常类,程序可以命名它们自己的异常。异常应该是典型的继承自Exception类,通过直接或间接的方式。

以下为与BaseException相关的实例,实例中创建了一个类,基类为BaseException,用于在异常触发时输出更多的信息。

在try语句块中,用户自定义的异常后执行except块语句,变量 e 是用于创建Networkerror类的实例。

class Networkerror(BaseException):
    def __init__(self,msg):
        self.msg=msg
    def __str__(self):
        return self.msg
 
try:
    raise Networkerror('类型错误')
except Networkerror as e:
    print(e)

8.断言:assert条件

assert 1 == 1 
assert 1 == 2

9.总结try…except

  • 把错误处理和真正的工作分开来
  • 代码更易组织,更清晰,复杂的工作任务更容易实现
  • 毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了

最后

对于刚开始接触python的朋友,这里准备了大量的学习资料 可以直接点击文末名片进行领取

Python基础学习:try...except...的详细用法

Python基础学习:try...except...的详细用法
Python基础学习:try...except...的详细用法文章来源地址https://www.toymoban.com/news/detail-487575.html

到了这里,关于Python基础学习:try...except...的详细用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python 异常处理:try、except、else 和 finally 的使用指南

    当发生错误(或我们称之为异常)时,Python 通常会停止执行并生成错误消息。 try 块用于测试一段代码是否存在错误。 except 块用于处理错误。 else 块用于在没有错误时执行代码。 finally 块用于无论 try 和 except 块的结果如何都要执行的代码。 可以使用 try 语句来处理这些异常

    2024年02月06日
    浏览(8)
  • [oeasy]python0139_尝试捕获异常_ try_except_traceback

    [oeasy]python0139_尝试捕获异常_ try_except_traceback

    变量相加 整型数字变量可以相加 字符串变量也可以拼接 但是 字符串 和 整型数字 整型数字 和 字符串 不能相加 怎么办? 转格式 int(“1”) str(2) 可是 如果输入的苹果数量是 字符串\\\"abc\\\" int(“abc”)会发生什么??😱 先试试看 虽然我有了心理准备 但是 python 显然还没有准备好

    2023年04月25日
    浏览(25)
  • Python 异常处理 try-except,else,finally, with 语句的区别

    Python 异常处理 try-except,else,finally, with 语句的区别

    在日常编写程序时,难免会遇到错误,有的是由于疏忽造成的语法错误,有的是程序内部隐含逻辑问题造成的数据错误,还有的是程序运行时与系统的规则冲突造成的系统错误,等等。 总的来说,编写程序时遇到的错误可大致分为 2 类,分别为语法错误和运行时错误。 Pyth

    2023年04月08日
    浏览(10)
  • 基于try-except模块的ZeroDivisionError: division by zero解决办法

    顾名思义,ZeroDivisionError: division by zero就是除数为0的情况,也可以理解为分母为0的情况。如1/0,2/0,3/0等,但有些场和我们可能需要分母位置的0值,例如我要比较分子与分母的大小,取得其中的相对小值作为一个变量,包括0。 对于上述情况,可以采用try-except异常捕获模块

    2024年02月06日
    浏览(8)
  • java try throw exception finally 遇上 return break continue造成异常丢失

    java try throw exception finally 遇上 return break continue造成异常丢失

        如下所示,是一个java笔试题,考察的是抛出异常之后,程序运行结果,但是这里抛出异常,并没有捕获异常,而是通过finally来进行了流程控制处理。     运行程序,打印结果如下所示:       这里结果有些出人意料,并没有打印异常信息,其实就是try finally遇到了con

    2024年02月08日
    浏览(10)
  • Python(一):为什么我们要学习Python?

    Python(一):为什么我们要学习Python?

    ❤️ 专栏简介:本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中,我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 :本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无论你是学生、职场人士还是

    2024年02月13日
    浏览(39)
  • c++ set用法详解超详细 适合零基础小白

    目录 1.set简介  2.插入数据  3.删除数据  4.其它常用方法 set 是 C++ 标准库中的一个容器,属于关联容器的一种。它是一个有序集合,其中的元素是唯一的,即每个元素只能在集合中出现一次。 set 是基于红黑树实现的,这使得插入、删除和查找操作的时间复杂度都是 O(log n)。

    2024年04月28日
    浏览(6)
  • “!!!保姆级教程·Python·从0开始到精通基础!!!“ “一篇文章全部学完!“ 详细过程 各种注意批注 为您的python基础学习保驾护航!

    “!!!保姆级教程·Python·从0开始到精通基础!!!“ “一篇文章全部学完!“ 详细过程 各种注意批注 为您的python基础学习保驾护航!

    目录  常量和表达式 变量和类型  变量是什么 变量的语法 定义变量 变量命名的规则 使用变量   变量的类型 整数  浮点数 字符串 布尔类型 其它 为什么要有这些类型? 动态类型特征 两面性 注释 注释是什么     作用          注释的语法 注释的规范 输入输出   和用户

    2024年02月21日
    浏览(18)
  • MySQL 基本概念 基础用法 增删改查(特殊查询)语法 详细篇

    今天来分享一期MySQL的基本用法(增删改查 对库 对表 对值) 目录 MySQL的基础概念  SQL 语言的主要分类 DDL(数据定义语言) DML(数据操控语言) DQL(数据库查询语言) DCL(数据库控制语言) 基础语法 增 库的操作 表操作 列操作 值操作 删 删除库 删除表 删除值 改 修改表名 更新数

    2024年03月16日
    浏览(7)
  • Python的切片操作详细用法解析

    Python的切片操作详细用法解析

    在利用Python解决各种实际问题的过程中,经常会遇到从某个对象中抽取部分值的情况,切片操作正是专门用于完成这一操作的有力武器。理论上而言,只要条件表达式得当,可以通过单次或多次切片操作实现任意切取目标值。切片操作的基本语法比较简单,但如果不彻底搞清

    2024年02月02日
    浏览(13)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包