广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python之try except的使用
  • 590
分享到

python之try except的使用

python 2023-10-11 21:10:04 590人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

1.try-except常用语法: try仅有一块,但是except可以有多个 try: 可能产生异常的代码块except [ (Error1, Error2, ... ) [as e] ]: 处理异常的代码块1except [

1.try-except常用语法:

try仅有一块,但是except可以有多个

try:    可能产生异常的代码块except [ (Error1, Error2, ... ) [as e] ]:    处理异常的代码块1except [ (Error3, Error4, ... ) [as e] ]:    处理异常的代码块2except  [Exception]:    处理其它异常

该格式中,[] 括起来的部分可以使用,也可以省略。其中各部分的含义如下:

  • (Error1, Error2,...) 、(Error3, Error4,...):其中,Error1、Error2、Error3 和 Error4 都是具体的异常类型。显然,一个 except 块可以同时处理多种异常。
  • [as e]:作为可选参数,表示给异常类型起一个别名 e,这样做的好处是方便在 except 块中调用异常类型(后续会用到)。
  • [Exception]:作为可选参数,可以代指程序可能发生的所有异常情况,其通常用在最后一个 except 块。

python解释器会根据发生的异常,根据对应的异常类型来选择对应的except块来处理 

2. try-except处理流程:

1,捕获异常

当处理try模块发生异常时,系统会自动生成一个异常类型,并且将该异常发提交给解释器。

2,处理异常

当解释器收到异常对象时,会寻找能处理该异常的except块。找到合适的就将该异常对象交给该except块处理。如果没有合适的except块则,则程序运行终止,python解释器也退出。

事实上,不管程序代码块是否处于 try 块中,甚至包括 except 块中的代码,只要执行该代码块时出现了异常,系统都会自动生成对应类型的异常。但是,如果此段程序没有用 try 包裹,又或者没有为该异常配置处理它的 except 块,则 Python 解释器将无法处理,程序就会停止运行;反之,如果程序发生的异常经 try 捕获并由 except 处理完成,则程序可以继续执行。

例如:

import requestsw_url="Http://baiduDDD.com"def test_try_except():    try:        print("开始请求地址")        wiki_res = requests.get(w_url)        if wiki_res.status_code == 200:            login_suc=True        else:            login_suc = False    except Exception as e:        print("发生异常。。。。e:",e)        login_suc=False    print("继续运行。。。。")test_try_except()结果:开始请求地址发生异常。。。。e: HTTPConnectionPool(host='baiduddd.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))继续运行。。。。

有些requests请求的访问异常不是通过判断响应的status_code就能知道的,若是那些导致请求都无法建立的情况下,requests不使用try-except的话会直接500导致程序中止。使用try-except的话会捕获发生的异常,继续执行下去或者正常报告异常。

3.try-except-else-finally处理流程

else 模块将在 try模块没有发生任何异常的时候执行

finally模块是不管异常有无发生,最后都会执行到的代码

try:    print("try模块")except Exception as error:    print(error)else:    print("else模块")finally:    print("finally模块")

结果:

try模块else模块finally模块

若try模块正常执行并且有return返回,finally模块存在的话,会在return前去执行finally模块

def try_test():    try:        res=0        return res    except Exception as e:        print(repr(e))    finally:        print("finally")res=try_test()print("res=",res)

打印结果:

-------------------------------
finally
res= 0 

 4.用户抛出异常

raise抛出异常

x=11if x>10:    raise Exception("x不能大于10")

结果:

Traceback (most recent call last):  File "C:/项目/python_tool/python_other_test/tryexcept.py", line 33, in     raise Exception("x不能大于10")Exception: x不能大于10

5.用户自定义异常

用户可自定义异常,但是需要继承自Exception类

class MyError(Exception):        # 直接继承或者间接继承均可        def __init__(self, value):            self.value = value        def __str__(self):            return repr(self.value)x=11if x>10:    raise MyError("x不能大于10")

结果:

Traceback (most recent call last):  File "C:/项目/python_tool/python_other_test/tryexcept.py", line 39, in     raise MyError("x不能大于10")__main__.MyError: 'x不能大于10'

6.异常类型常用属性及方法

e.args:异常的错误编号及描述字符串

str(e):异常的错误信息

repr(e):较全面的异常信息

import requestsw_url="http://baiduddd.com"def test_try_except():    try:        print("开始请求地址")        wiki_res = requests.get(w_url)        if wiki_res.status_code == 200:            login_suc=True        else:            login_suc = False    except Exception as e:        print("异常的错误编号及描述字符串:",e.args)        print("异常的错误信息:",str(e))        print("异常信息,较全面的异常信息:",repr(e))        login_suc=False    print("继续运行。。。。")test_try_except()

结果:

开始请求地址异常的错误编号及描述字符串: (MaxRetryError("HTTPConnectionPool(host='baiduddd.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))"),)异常的错误信息: HTTPConnectionPool(host='baiduddd.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))异常信息,较全面的异常信息: ConnectionError(MaxRetryError("HTTPConnectionPool(host='baiduddd.com', port=80): Max retries exceeded with url: / (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 11001] getaddrinfo failed'))"))继续运行。。。。

来源地址:https://blog.csdn.net/yuxuan89814/article/details/128962058

--结束END--

本文标题: python之try except的使用

本文链接: https://www.lsjlt.com/news/428763.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python之try except的使用
    1.try-except常用语法: try仅有一块,但是except可以有多个 try: 可能产生异常的代码块except [ (Error1, Error2, ... ) [as e] ]: 处理异常的代码块1except [...
    99+
    2023-10-11
    python
  • Python try-except-else-finally的具体使用
    目录try-excepttry-except-elsetry-finallytry-except 作用:处理异常情况 用法:try:后面写正常运行的代码,except + 异常情况:...
    99+
    2022-11-12
  • python基础知识之try...except...的详细用法实例
    目录前言1.异常类只能来处理指定的异常情况,如果非指定异常则无法处理2.多分支3.万能异常Exception4.多分支+Exception5.异常的其他机构(try…f...
    99+
    2022-11-11
  • python嵌套try...except如何使用详解
    目录引言前提抛出异常自定义异常异常对象多重try补充:捕获异常的小方法方法一:捕获所有异常方法二:采用traceback模块查看异常方法三:采用sys模块回溯最后的异常总结引言 众所...
    99+
    2022-11-11
  • python中try-except-finally语句怎么使用
    本文小编为大家详细介绍“python中try-except-finally语句怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“python中try-except-finally语句怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-30
  • try-except-finally语句怎么在python中使用
    这期内容当中小编将会给大家带来有关try-except-finally语句怎么在python中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Python的优点有哪些1、简单易用,与C/C++、Java...
    99+
    2023-06-14
  • Python中怎么避免滥用try...except
    这篇文章主要讲解了“Python中怎么避免滥用try...except”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python中怎么避免滥用try...except”吧!有不少人在写 Py...
    99+
    2023-06-16
  • Python基础学习:try...except...的详细用法
    我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try...
    99+
    2023-09-22
    python 学习 开发语言
  • Python入门教程(三十一)Python的Try和Except
    目录异常处理多个异常ElseFinally引发异常try 块允许您测试代码块以查找错误。 except 块允许您处理错误。 finally 块允许您执行代码,无论 try 和 exc...
    99+
    2023-05-18
    Python Try Python Except
  • Python中用try-except-finally处理异常问题
    目录Python用try-except-finally处理异常作用意义结构执行流程Python的try…except…finally语句举个例子总结Pyt...
    99+
    2022-12-20
    Python try-except-finally try-except-finally处理异常 Python处理异常
  • 怎么在python中使用try-except方法捕获异常
    这篇文章给大家介绍怎么在python中使用try-except方法捕获异常,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;...
    99+
    2023-06-14
  • 如何在python中使用try-except方法处理异常
    这篇文章给大家介绍如何在python中使用try-except方法处理异常,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学研究;3、网络爬虫;...
    99+
    2023-06-14
  • python中try-except-else的工作原理是什么
    python中try-except-else的工作原理是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python有哪些常用库python常用的库:1.requesuts;...
    99+
    2023-06-14
  • python中的try except与R语言中的tryCatch异常解决
    目录1. 起因2. Python中的try/except1)情形一2)情形二3)情形三3. R中的tryCatch1)情形一2)情形二3)情形三补充1. 起因 当我们需要写一个非常非...
    99+
    2022-11-12
  • python 异常之 try 的用法
     语法解释: try:      表达式 1(如果表达式,可以成功执行,则执行,跳到 finally 语句) except ExpectErrorType, Argument:   (表达式1 没有做成功,且正好是 Exp...
    99+
    2023-01-31
    异常 python
  • 如何解决python中的try except与R语言中的tryCatch异常问题
    小编给大家分享一下如何解决python中的try except与R语言中的tryCatch异常问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1. 起因当我们需要写一个非常非常长的循环时,通常在某个循环如果出现error...
    99+
    2023-06-25
  • 写写python中try的使用
    python中try的使用 在 Python 中,try 是用于异常处理的关键字。try 语句的语法如下: try: # 可能会抛出异常的语句块except ExceptionType1: ...
    99+
    2023-09-20
    python java 前端
  • Python中的try excpet BaseException怎么使用
    这篇文章主要介绍“Python中的try excpet BaseException怎么使用”,在日常操作中,相信很多人在Python中的try excpet BaseException怎么使用问题上存...
    99+
    2023-07-05
  • Python使用os模块、Try语句、
    通常在读写文件之前,需要判断文件或目录是否存在,不然某些处理方法可能会使程序出错。所以最好在做任何操作之前,先判断文件是否存在。 这里将介绍三种判断文件或文件夹是否存在的方法,分别使用os模块、Try语句、pathlib模块。 1.使用o...
    99+
    2023-01-31
    语句 模块 Python
  • python-try-except:pass的用法及说明
    目录python-try-except:pass用法1.为了跳过for循环里的某次循环2.还可以写成这样3.还有一种用法python try: pass except:pass流程控...
    99+
    2022-12-20
    python-try-except:pass python pass python-try-except
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作