首页 > 其他分享 >异常捕获

异常捕获

时间:2023-12-06 16:22:54浏览次数:20  
标签:Exception 捕获 except try print 异常

异常捕获

什么是异常

  • 异常是程序运行时可能发生的错误或意外情况。在Python中,异常是一种对象,表示程序执行期间发生的错误。
  • 当出现异常时,程序的正常流程会被中断,而是跳转到异常处理流程。

异常分类

  • 内建异常(Built-in Exceptions):由Python内部定义的异常,例如ZeroDivisionErrorNameError等。

  • 用户自定义异常:由程序员自己定义的异常,用于满足特定的业务需求。

    异常分类

    【一】异常捕获语法

    try:
        可能会发生异常的代码块
    # Exception : 任意异常类型都会被捕获到,并且赋值给变量e
    except Exception as e:
        # 展示异常原因
        print(e)
    
    

​ 【1】不指定错误类型,只捕获异常

try:
    print(int('abc'))
except:
    print(f'报错了')

【2】指定确认的异常类型,并捕获

try:
 print(int('abc'))
except ValueError as e:
 print(e)
#invalid literal for int() with base 10: 'abc'    

​ 【3】无论是什么异常,都会被捕获到,并且输出(except Exception as e:)

try:
    print(int('abc'))
except Exception as e:
    print(e)

​ 【4】异常分支语句

'''
try:
    # 正常的操作
    ...
except:
    # 发生异常,执行这块代码
    ...
else:
    # 如果没有异常执行这块代码
    ...
'''

​ 【5】无论是否发生异常都将执行最后的代码

'''
try:
	# 正常执行的代码
    ...
except:
    # 发生异常,执行这块代码
finally:
	#退出try时总会执行
    ...
'''

​ 【6】用raise 主动触发异常

try:
    #对的信息会触发下面raise语句
    print(int('123'))
    raise ValueError("这是一个错误")
except Exception as e:
    print(f"这是异常 {e}")
    
    
# 循环遇到异常也会停止运行
while True:
   raise ValueError('这是一个错误')

​ 【7】自定义异常

class MyException(BaseException):
    def __init__(self, args):
        print(f'MyException :>>>>  {args}')

    # def __new__(cls, *args, **kwargs):
    #     print(f'这是 MyException抛出的异常 ')


try:
    raise MyException('这是自己的异常')
except Exception as e:
    print(f"这是错误 {e}")

断言

  • assert condition, message
    condition:断言的条件,如果为False,则触发异常。
    message:可选参数,用于指定触发异常时的错误消息。
username = input('请输入用户名:>>>> ').strip()
assert 'hope' in username, '必须带hope'

标签:Exception,捕获,except,try,print,异常
From: https://www.cnblogs.com/banchengyanyu/p/17879801.html

相关文章

  • 异常处理
    异常是程序运行时可能发生的错误或意外情况。在Python中,异常是一种对象,表示程序执行期间发生的错误。当出现异常时,程序的正常流程会被中断,而是跳转到异常处理流程。异常的分类内建异常Built-inExceptions:由python内部定义的异常,例如ValueErrorKeyError等。用户自定义的......
  • NET Core 3.1 MVC 在html中引用js的方法使用时不生效异常
    在html的select元素添加了onchange事件,changeContent方法也在当前html下。<selectid="changeLanguage"class="form-controlinput-lg"asp-for="language"asp-items="Model.supportedLanguages"onchange="changeContent()">&l......
  • 迭代器和生成器、异常捕获
    一、迭代器(Iterator)1、可迭代对象(Iterable)和可索引对象存储了元素的一个容器对象,且容器中的元素可以通过“__iter__()”方法或“__getitem__()”方法访问。可迭代对象不能独立进行迭代,可通过“for…in”遍历来完成2、常见的可迭代对象字符串、列表、元组、字典、集合、文件......
  • 异常处理
    一,可避免语法异常SyntaxError1ifx>10#if后面没有冒号2print("xisgreaterthan10")NameErrorname,变量名字取得有问题二,难点异常什么时候最容易出异常当你要处理的内容不确定的时候有用户参与有外界数据接入:从文件中读,从网络上获取。多行报......
  • Day17 异常与日志
    1.异常的概述在编程中,我们经常遇到各种不可预见的问题,例如:文件找不到、网络连接失败、数组越界等。这些问题我们通常称之为“异常”(Exception)。java把异常当作对象来处理,并定义了一个基类java.lang.Throwable作为所有异常的超类。java.lang.Throwable主要分为两类错误Error......
  • 八. 异常处理和命名空间
    1.异常处理注意:以下内容在C++11中进行了优化,不再适用。在C++98中,为程序可能出现的异常提供了一套完整的机制,其基本语法如下:抛出异常:throw表达式;trycatch代码块:try{ 复合语句}catch(异常类型){复合语句}catch(异常类型){复合语句}抛出机制:当函......
  • 一种全新的日志异常检测评估框架:LightAD
    本文分享自华为云社区《【AIOps】一种全新的日志异常检测评估框架:LightAD,相关成果已被软工顶会ICSE2024录用》,作者:华为云PaaS服务小智。深度学习(DL)虽然在日志异常检测中得到了不少应用,但在实际轻量级运维模型选择中,必须仔细考虑异常检测方法与计算成本的关系。具体来说,尽管深......
  • 全局异常捕获
    DispatcherUnhandledException——UI线程未被处理的异常捕获从App对象中订阅DispatcherUnhandledException事件publicpartialclassApp:Application{publicApp(){//DispatcherUI线程未被处理的异常this.Disp......
  • Java异常处理
    异常处理是Java编程中的一个核心概念,它提供了一种强大的方法来处理运行时错误,使我们的程序更加健壮。异常是程序运行过程中发生的不正常情况,它打断了正常的指令流。本文将介绍Java中的异常处理机制,包括异常的类型、如何捕获和处理异常,以及自定义异常。异常类型在Java中,所有的异常都......
  • java 捕获异常Exception 获取异常信息的方法 e.toString() e.getMessage() e.printSta
    Java异常中e.getMessage()和e.toString()e.printStackTrace()的区别e.getMessage():打印异常的原因e.toString():打印异常类型和异常的原因e.printStackTrace():打印完整的异常堆栈信息  总结e.getMessage()和e.toString()方法:打印的异常信息太少,没有具体......