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

异常捕获

时间:2023-12-06 16:26:17浏览次数:18  
标签:语句 错误 捕获 except try print 异常

【一】异常捕获

1.1 - 常见异常分类

Python中的异常可以分为以下几类:

  1. 内建异常(Built-in Exceptions):这些异常是Python内置的,用于表示常见的错误情况。例如:

    • SyntaxError:语法错误,通常是由于代码不符合Python语法规则导致的。
    • TypeError:类型错误,通常是由于操作符或函数应用于错误类型的对象导致的。
    • NameError:名称错误,通常是由于引用了不存在的变量或函数名导致的。
    • ValueError:值错误,通常是由于传递给函数的参数具有无效的值导致的。
    • IndexError:索引错误,通常是由于访问列表、元组或字符串等序列时使用了无效的索引导致的。
  2. 标准库异常(Standard Exceptions):这些异常由Python标准库提供,用于表示特定的错误情况。例如:

    • FileNotFoundError:文件未找到错误,通常是由于试图打开不存在的文件导致的。
    • ZeroDivisionError:零除错误,通常是由于除法操作中除数为零导致的。
    • KeyError:键错误,通常是由于在字典中使用不存在的键导致的。
    • ImportError:导入错误,通常是由于导入模块失败或找不到指定的模块导致的。
  3. 自定义异常(Custom Exceptions):除了使用内建异常和标准库异常外,Python还允许用户自定义异常来表示特定的错误情况。用户可以通过继承Exception类创建自定义异常类,并根据需要添加额外的属性和方法。

1.2 - 异常捕获处理

处理异常的方法是使用try-except语句捕获异常并进行处理。try块中的代码用于尝试执行可能引发异常的操作,而except块中的代码用于处理捕获到的异常。可以使用多个except块来处理不同类型的异常,或者使用一个except块来捕获所有异常。

下面是一个示例,演示了如何捕获和处理异常:

try:  
    int('a')  
      
except Exception as e:  
    print('error')

       or

try:  
    int('a')  
  
except ValueError as e:  
    print('error')

try-except语法用于捕获和处理异常。下面是try-except语句的基本语法结构:

try:
    # 可能引发异常的代码
    # ...
except ExceptionType1:
    # 处理类型为ExceptionType1的异常
    # ...
except ExceptionType2:
    # 处理类型为ExceptionType2的异常
    # ...
except:
    # 处理其他类型的异常

1.2.1 异常分支语句

try:  
    int('1')  
  
except ValueError as e:  
    print('error')  
  
else:  
    print('转换成功')  # 转换成功

1.2.2 finally 语句

finally是一个可选的关键字,用于定义一个代码块,无论是否发生异常,该代码块中的代码都会被执行。finally块通常用于确保在发生异常或不发生异常的情况下都执行某些清理操作,例如关闭文件、释放资源等。

以下是try-except-finally语句的基本语法结构:

try:
    # 可能引发异常的代码
    # ...
except ExceptionType1:
    # 处理类型为ExceptionType1的异常
    # ...
except ExceptionType2:
    # 处理类型为ExceptionType2的异常
    # ...
except:
    # 处理其他类型的异常
    # ...
finally:
    # 无论是否发生异常,都会执行的代码块
try:  
    int('1')  
  
except ValueError as e:  
    print('error')  
  
else:  
    print('转换成功')  # 转换成功  
  
finally:  
    print('执行完成最后输出')  # 执行完成最后输出

1.2.3 自定义异常语句 raise

raise关键字用于引发异常。通过使用raise语句,可以在程序中明确地触发异常,以便提供有关错误或异常情况的信息。

raise语句的基本语法如下:

def divide(x, y):  
    if y == 0:  
        raise ValueError("除数不能为零")  
    return x / y  
  
  
try:  
    result = divide(10, 0)  
    print("结果:", result)  
except ValueError as e:  
    print("发生错误:", str(e))

1.2.4 条件判断触发异常 assert

assert关键字用于检查某个条件是否为真。如果条件为假,assert语句会引发一个AssertionError异常,并提供一个可选的错误消息。

assert语句的基本语法如下:

assert condition, "Error message"

在上述语法中,condition是要检查的条件,如果条件为假,则引发AssertionError异常。"Error message"是一个可选的错误消息,用于提供关于断言失败的额外信息。

以下是一个示例,演示了如何使用assert语句:

def index(x, y):  
    assert y != 0, '除数不能为0'  
    res = x / y  
    return res  
  
  
# AssertionError  
res1 = index(10, 0)  
print(res1)  # 除数不能为0

标签:语句,错误,捕获,except,try,print,异常
From: https://www.cnblogs.com/wx-x/p/17879777.html

相关文章

  • 异常捕获
    异常捕获什么是异常异常是程序运行时可能发生的错误或意外情况。在Python中,异常是一种对象,表示程序执行期间发生的错误。当出现异常时,程序的正常流程会被中断,而是跳转到异常处理流程。异常分类内建异常(Built-inExceptions):由Python内部定义的异常,例如ZeroDivisionError、......
  • 异常处理
    异常是程序运行时可能发生的错误或意外情况。在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中,所有的异常都......