美文网首页
Python异常

Python异常

作者: Biomamba生信基地 | 来源:发表于2023-07-13 00:28 被阅读0次

写在前面

在任何编程语言中都难免会遇到异常(报错),如何查看报错、理解报错、避免报错、捕获报错信息,都是我们需要去应对的环节。

一、异常定义

异常:当程序检测到错误时,Python解释器就无法继续执行了,此时会出现一些错误的提示,这就是所谓的”异常”,也就是我们常说的BUG
例如最常见的bug,打错函数名称:

pring("Biomamba")
# 这时就会返回报错,并告诉发生错误的位置和具体原因

NameError: name ‘pring’ is not defined

二、异常捕获

程序遇到bug时会存在两种情况:1、终止程序。2、提醒出现的bug并让整个程序继续运行。情况2就需要进行异常捕获,从而防止整个程序因为一些小bug而停止运行
异常捕获基本语法:
try:
可能错误发生的代码 except:
如果出现异常则执行的代码

# 捕获异常(默认不区分异常类型):
try:
    prinf('这条代码可能有异常')
except:
    print("上条代码有异常,本条被输出")
# 可以看到以上几行代码没有报错,输出的内容则是except后的语句
## 上条代码有异常,本条被输出
# 捕获指定异常
# 例如这里捕获变量名称未定义的异常"NameError"
try:
    print(Biomamba)
except NameError as aerror:
    print("Biomamba未被定义")
# 可以看到错误成功被捕获,且备选方案被执行
## Biomamba未被定义
# 捕获指定异常
# 这里我们让异常不属于NameError:
try:
    print(1/0)
except NameError :
    print("Biomamba未被定义")
# 可以看到错误没有被捕获,提示信息被输出,备选代码也没有被执行

ZeroDivisionError: division by zero

# 捕获多个异常,except(异常1,异常2)
try:
    print(1/0)
except(NameError,ZeroDivisionError):
     print("这是备选代码执行结果")
# 可以看出备选代码被成功执行
## 这是备选代码执行结果
# 捕获所有类型异常
try:
    print(1/0)
    print(Biomamba)
except Exception:
     print("这是备选代码执行结果")
# 可以看出备选代码被成功执行
## 这是备选代码执行结果

三、异常else

除了except之外,还可以设置没有异常时选择执行的代码:

try:
    print("这里没有异常")
except:
    print("这是有异常后的执行结果")
else:
    print("这是没有捕获到异常的执行结果")
# 大家可以体会一下上述几行代码的执行逻辑
## 这里没有异常
## 这是没有捕获到异常的执行结果

四、异常finally

不管有没有异常,finally所包含的语句均会被执行:

# 有异常
try:
    1/0
    print("这里没有异常")
except:
    print("这是有异常后的执行结果")
else:
    print("这是没有捕获到异常的执行结果")
finally:
    print("我在所有条件下都会被执行")
# 大家可以体会一下上述几行代码的执行逻辑
## 这是有异常后的执行结果
## 我在所有条件下都会被执行
# 无异常
try:
    1+1
    print("这里没有异常")
except:
    print("这是有异常后的执行结果")
else:
    print("这是没有捕获到异常的执行结果")
finally:
    print("我在所有条件下都会被执行")
# 大家可以体会一下上述几行代码的执行逻辑
## 2
## 这里没有异常
## 这是没有捕获到异常的执行结果
## 我在所有条件下都会被执行

五、异常传递

异常是具有传递性的,可以用as来定义接收异常的变量:

try:
    1/0
except Exception as my_error:
    print("异常被成功捕获,下面是异常的具体信息:\n")
    print(my_error)
    # 可以看到除数异常被成功捕获
## 异常被成功捕获,下面是异常的具体信息:
## 
## division by zero
# 但异常的捕获是一个局部变量,跳出异常捕获语句后捕获的异常变量就失效了:
try:
    1/0
except Exception as my_error:
    print("异常被成功捕获,下面是异常的具体信息:\n")

print(my_error)
    # 可以看到除数异常被成功捕获,但my_error变量不存在
NameError: name ‘my_error’ is not defined

NameError: name ‘my_error’ is not defined

往期回顾

生信Python速查手册

Python安装(Windows+Linux)

Python的"Rstudio"——Pycharm

码Python神器:jupyter notebook

一文了解Python基础:字面量、注释、变量、类型、运算符

Python判断语句

Python循环语句

Python函数与方法

一文掌握Python数据容器

Python函数进阶

Python文件操作

如何联系我们

公众号后台消息更新不及时,超过48h便不允许回复读者消息,这里给大家留一下领取资料、免费服务器(有root权限的共享服务器,注册即送200¥)的微信号[Biomamba],方便各位随时交流、提建议(科研任务繁重,回复不及时请见谅)。此外呼声一直很高的交流群也建好了,欢迎大家入群讨论:永久免费的千人生信、科研交流群

大家可以阅读完这几篇之后添加
给生信入门初学者的小贴士
如何搜索公众号过往发布内容

相关文章

  • 24:python中的异常

    异常: 首先看看python的异常继承树 python的异常分为两种. 1、内建异常:就是python自己定义的异...

  • Python异常处理

    参考 Python菜鸟教程错误与异常 Python 异常处理 错误和异常 Python中(至少)有两种错误:语法错...

  • Python学习(八)

    异常处理 Python中的异常类型总结: Python内置异常类的层次结构: 异常检测 try-except语句 ...

  • (三)python错误与异常&面向对象编程

    python错误与异常 语法错误与定位 异常捕获、异常处理 try:xxxexcept: 自定义异常 python...

  • Python错误处理机制

    @(python程序员)[Python] Python Cookbook 捕获所有的异常 处理异常的时候最好还会尽...

  • Python异常处理

    Python中文件的操作 Python异常的处理 异常的引发 try⋯finally的使用

  • Python常见异常

    python标准异常 异常名称 描述 BaseException 所有异常的基...

  • Python 异常

    Python 含有异常处理机制来帮助用户处理可能发生的错误异常。 1. 异常概念 异常是指Python程序运行过程...

  • 异常处理

    捕获异常 raise语法: 格式:raise 异常名称(‘异常描述’) python中常见的异常

  • python的异常处理

    Python异常处理

网友评论

      本文标题:Python异常

      本文链接:https://www.haomeiwen.com/subject/sgypudtx.html