python中try的使用方法详解

 更新时间:2023年10月07日 11:11:21   作者:张小小浩  
这篇文章主要给大家介绍了关于python中try使用的相关资料,try语句用于包含一段可能引发异常的代码块,并允许我们定义如何处理这些异常,文中通过代码介绍的非常详细,需要的朋友可以参考下

python中try的使用

在 Python 中,try 是用于异常处理的关键字。try 语句的语法如下:

try:
    # 可能会抛出异常的语句块
except ExceptionType1:
    # 处理 ExceptionType1 异常的语句块
except ExceptionType2:
    # 处理 ExceptionType2 异常的语句块
else:
    # 如果没有异常发生,执行的语句块
finally:
    # 不管有没有异常,都会执行的语句块

其中,try 语句块中的代码可能会抛出异常,如果抛出了异常,则会在 try 语句块中断,并跳转到对应的 except 语句块中处理异常。except 语句块中可以指定要处理的异常类型,如果抛出的异常是指定类型的异常,则会执行对应的 except 语句块中的代码。

如果在 try 语句块中没有抛出异常,则会执行 else 语句块中的代码。finally 语句块中的代码不管有没有异常都会执行。

以下是一个简单的例子,演示了 try 语句块的使用:

try:
    x = int(input("请输入一个整数: "))
    print("输入的整数是:", x)
except ValueError:
    print("输入错误:请输入整数")
else:
    print("没有发生异常")
finally:
    print("程序执行完毕")

在这个例子中,try 语句块中的代码尝试将用户输入转换成整数,并输出转换后的结果。如果用户输入的不是整数,则会抛出 ValueError 异常,然后跳转到对应的 except 语句块中处理异常。在 except 语句块中,我们输出了一条错误消息,告诉用户输入错误。在 else 语句块中,我们输出了一条消息,表示没有发生异常。在 finally 语句块中,我们输出了一条消息,表示程序执行完毕,无论有没有发生异常都会执行。

自定义异常

ValueError 是 Python 内置的异常类型之一,它通常表示某个函数或方法收到的参数无效或不合法。例如,在尝试将一个字符串转换为整数时,如果字符串不是一个合法的数字,则会抛出 ValueError 异常。

在 Python 中,除了内置的异常类型,也可以自定义异常类型。为了自定义一个异常类型,可以定义一个新的类,并继承自 Exception 类或其它内置的异常类型。例如,以下代码定义了一个自定义的异常类型 MyError

class MyError(Exception):
    pass

定义了 MyError 异常类型之后,就可以在程序中抛出这个异常。例如:

def my_function(x):
    if x < 0:
        raise MyError("x不能小于0")
    else:
        return x * 2
try:
    result = my_function(-1)
except MyError as e:
    print("发生了自定义异常:", e)
else:
    print("结果是:", result)

在这个例子中,我们定义了一个名为 my_function() 的函数,用于接收一个数字 x,并将其乘以 2。如果 x 是一个负数,则会抛出 MyError 异常,并输出错误消息。在 try 语句块中,我们调用了 my_function(-1),由于 -1 是一个负数,因此会抛出 MyError 异常。在 except 语句块中,我们捕获了这个异常,并输出了错误消息。在 else 语句块中,我们输出了计算结果。

内置异常

Python 中内置的异常类型非常多,可以用来处理不同类型的错误。以下是 Python 3.9.6 版本中内置的常见异常类型及其说明:

  • Exception:所有异常的基类。
  • AttributeError:对象没有这个属性。
  • EOFError:没有内建输入,到达了 EOF 标记。
  • FileExistsError:在创建文件或目录时,发现文件或目录已经存在。
  • FileNotFoundError:文件或目录不存在。
  • ImportError:模块导入失败。
  • IndexError:序列中没有这个索引。
  • KeyError:映射中没有这个键。
  • KeyboardInterrupt:用户中断执行。
  • MemoryError:内存溢出错误。
  • NameError:未声明/初始化对象(没有属性)。
  • NotImplementedError:抽象方法没有实现。
  • OSError:操作系统错误,例如文件打开/读取错误。
  • OverflowError:数值运算超出最大值。
  • RecursionError:递归嵌套太深。
  • RuntimeError:通用运行时错误。
  • StopIteration:迭代器没有更多的值。
  • SyntaxError:语法错误。
  • IndentationError:缩进错误。
  • TabError:Tab 和空格混用。
  • SystemError:解释器内部错误。
  • TypeError:操作或函数应用于不适当的类型。
  • UnboundLocalError:访问未初始化的本地变量。
  • UnicodeError:Unicode 相关的错误。
  • ValueError:操作或函数接收到的参数具有不正确的值。
  • ZeroDivisionError:除数为零。

需要注意的是,这只是 Python 中内置的一部分异常类型,还有许多其他的异常类型,而且还可以自定义异常类型。在编写代码时,可以根据需要选择适当的异常类型来处理错误。

总结

到此这篇关于python中try的使用方法的文章就介绍到这了,更多相关python try的使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • pytorch下使用LSTM神经网络写诗实例

    pytorch下使用LSTM神经网络写诗实例

    今天小编就为大家分享一篇pytorch下使用LSTM神经网络写诗实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python中常用检测字符串相关函数汇总

    python中常用检测字符串相关函数汇总

    这篇文章主要介绍了python中常用检测字符串相关函数,实例汇总了Python针对字符串数字、字母、大小写等常用检测函数,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • python微信跳一跳系列之色块轮廓定位棋盘

    python微信跳一跳系列之色块轮廓定位棋盘

    这篇文章主要为大家详细介绍了python微信跳一跳系列,色块轮廓定位棋盘,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • 利用Python实现批量打包程序的工具

    利用Python实现批量打包程序的工具

    auto-py-to-exe与pyinstaller都无法直接一次性打包多个程序,想打包多个程序需要重新操作一遍。所以本文将用Python实现批量打包程序的工具,感兴趣的可以了解一下
    2022-07-07
  • Python 迭代器和生成器概念及场景分析

    Python 迭代器和生成器概念及场景分析

    yield 是 Python 中实现惰性计算和协程的核心工具,结合 send()、throw()、close() 等方法,能够构建高效、灵活的数据流和控制流模型,这篇文章主要介绍了Python 迭代器和生成器概念,需要的朋友可以参考下
    2025-04-04
  • python中赋值语句的特点和形式

    python中赋值语句的特点和形式

    这篇文章主要介绍了python中赋值语句的特点和形式,文中介绍了多目标赋值的共享引用问题,多目标赋值其实是多个目标对同一个内存空间的引用,这里要分两种情况,当被引用对象是不可变对象时则不存在问题,感兴趣的朋友跟随小编一起看看吧
    2023-12-12
  • python os.path.isfile()因参数问题判断错误的解决

    python os.path.isfile()因参数问题判断错误的解决

    今天小编就为大家分享一篇python os.path.isfile()因参数问题判断错误的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python中数字以及算数运算符的相关使用

    Python中数字以及算数运算符的相关使用

    这篇文章主要介绍了Python中数字以及算数运算符的相关使用,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-10-10
  • python+numpy+matplotalib实现梯度下降法

    python+numpy+matplotalib实现梯度下降法

    这篇文章主要为大家详细介绍了python+numpy+matplotalib实现梯度下降法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • python3实现ftp服务功能(服务端 For Linux)

    python3实现ftp服务功能(服务端 For Linux)

    这篇文章主要介绍了python3实现ftp服务功能,服务端 For Linux,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03

最新评论