博客
关于我
python入门到秃顶(10):异常
阅读量:650 次
发布时间:2019-03-15

本文共 1409 字,大约阅读时间需要 4 分钟。

一,异常

在Python中,异常是程序执行过程中意外发生的不正常情况,这些异常类都继承自`BaseException`。Python的异常机制非常强大,其中最常见的异常类型包括`NameError`(未声明的变量导致的错误)、`SyntaxError`(语法错误)和`TypeError`(类型错误)。异常类本身就是用户定义的类,可以用来报错并进行错误处理。

异常处理是编程中的一项非常重要的内容。当程序出现异常时,整个程序可能会崩溃,导致微信聊天或者游戏闪退等情况。这种情况下,开发者需要通过异常处理机制来控制程序的崩溃,防止严重后果的发生。在Python中,异常处理主要通过tryexceptfinally这几个关键字来实现。

二,异常处理

在Python中,异常处理机制通过`try`、`except`、`finally`实现。`try`用于标记可能会抛出异常的代码块,`except`用于捕捉异常,`finally`用于执行不管是否发生异常都会执行的代码。这些关键字的配合使用使得开发者能够在发生错误时,能够有序地处理错误,而不是让程序突然崩溃。

except的功能非常多样化:

  • 可以定义特定的异常类型进行捕捉。
  • 一个except语句可以捕捉多个异常类型。
  • 如果没有任何异常被捕捉,else语句会被执行。
  • finally语句会在tryexcept之后无论是否发生异常都会被执行。

这是非常重要的,因为它确保了代码的健壮性,能够在发生错误时不影响程序的其他部分继续执行。

三,抛出异常

除了被动地等待异常发生,开发者还可以主动抛出异常。通过`raise`语句,可以手动抛出任何已经定义的异常类。例如,可以定义一个自定义的异常类,如下所示:
class MyError(Exception):    pass

然后可以通过raise MyError()语句来抛出这个异常。这样做可以使得程序在某些特定条件下主动报错,这对于测试和调试非常有用。

四,断言

`assert`语句在Python中用于断言某个条件成立。如果断言不成立,Python会抛出一个`AssertionError`异常。断言通常用于程序中需要保证某个条件成立的场景,比如以下代码:
assert "z" in dir(str)  # 这个断言会检查"z"是否是str的属性。在支持Python 3的情况下,这会通过,但在不支持的环境下会抛出错误。

断言在程序调试中很有用,因为它可以帮助开发者快速定位潜在的错误源。

五,模块

在Python中,所有的Python程序文件(.py)都被称作模块。每个模块都有一个特殊的属性`__name__`,它可以用来检查当前模块的名称。实例如下:
print(__name__)  # 输出示例:main

模块之间通过import语句进行交互。import语句可以导入一个模块并在程序中使用它。例如,导入一个名为my_module.py的模块,可以这样做:

import my_module as myprint(my Module Info)

这使得代码更具可维护性和可重用性,特别是当多个程序需要使用相同的功能时,模块就成为了一个非常有用的工具。

通过以上知识,我们可以更好地理解和使用Python的异常处理机制、高级异常操作功能以及断言的作用。这些技能对于编写稳定、可靠的Python程序至关重要。

转载地址:http://nuemz.baihongyu.com/

你可能感兴趣的文章
如何使用SSH远程管理Linux服务器
查看>>
降级到旧版本macOS的3种方法
查看>>
学习Vue.js2.0(国外视频教程)
查看>>
wxPython和PyOpenGL视频
查看>>
在30分钟内学习PHP
查看>>
Python http.server 服务器
查看>>
Python svm 支持向量机
查看>>
OpenStack 最小化安装配置(一):物理机网桥配置
查看>>
PS快速美白照片
查看>>
ubuntu 16.04 镜像下载
查看>>
CUDA9.1、cuDNN7在Ubuntu16.04上的安装
查看>>
解决“预编译器错误:代码使用了scss/sass语言,但未安装相应编译器,请在菜单工具-插件安装里安装相应编译插件”
查看>>
微信小程序云开发:怎么删除云函数?已解决
查看>>
解决微信小程序项目导入的问题:app.json 未找到、 __wxConfig is not defined
查看>>
非迅捷|PDF、Word、PPT、Excel、图片等互相在线转换:免费、简单、快速、零错误、无套路
查看>>
第一次被黑
查看>>
PyCharm配置anaconda环境
查看>>
SpringBoot与缓存(JSR-107、Spring缓存抽象)
查看>>
ERROR 总结
查看>>
查找最小值栈的O(1)
查看>>