学编程必须得会的异常处理

Posted 神的孩子都在歌唱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学编程必须得会的异常处理相关的知识,希望对你有一定的参考价值。

前言:

作者:神的孩子在歌唱
这是我听老师讲课做的笔记
大家好,我叫陈运智,大家可以叫我

一. 介绍

程序出现错误了怎么办?我们可以通过打断点编写异常处理代码,也可以通过编译器自己找寻错误

  1. 什么是异常?
    比如你的代码写错了,在程序运行到错误代码时候,就会终止报错,出现提示,这就是异常

  2. 编译器会自己报错,不用自己手动找错误 ?
    这种在代码量很少的情况下你能很快判断出来,要是代码量很多,就无法很快找到错误的地方,这时候就需要我们编写异常处理的代码了

二. 异常语句处理

2.1 基本介绍

  1. 语法格式:
try: 
#可能出现错误的代码块 
except: 
#出错之后执行的代码块 
else: 
#没有出错的代码块 
finally: 
#不管有没有出错都执行的代码块
  1. 作用:如果try里面代码异常,except就将错误捕获,然后执行下一个代码块,这样程序就不会因为一段代码包异常而导致整个程序崩溃

  2. 代码演示

我们可以通过Exception 可以捕获任何类型的异常

try:
    print(小智)
except Exception as e: # Exception 可以捕获任何类型的异常
    print('报错提示:',e)
else:
    print('上面没错,就执行我')
finally:
    print('我错没错都执行')

输出:
在这里插入图片描述

try改成print('小智')

输出:
在这里插入图片描述

2.2 异常传递

如果多个函数嵌套调用,内层函数异常,异常会往外部传递,直到异常被抛出,或被处理。

def a():
    print('执行a函数')
    1/0 # 制造一个异常
def b():
    print('执行b函数')
    try:
        a()  # 调用a函数
    except Exception as e:
        print(e)
    print('b函数执行完成')
b()

输出:
在这里插入图片描述

2.3 自定义异常

  1. 自定义异常,都要直接或间接继承ErrorException类。

  2. 由开发者主动抛出自定义异常,在python中使用raise关键字,由调用者决定是否需要做异常处理,如不处理,可继续抛出。

  3. 代码演示

如果输入的名字大于给定的四位数就报错

#自定义异常,如果不合法就报错
class Test(Exception):# 自定义异常类需要继承Exception
    def __init__(self,len):#我们以输入姓名长度为列
        self.len=len
        pass
    def __str__(self):
        return '你输入的姓名长度超出所定义的长度了'
        pass
def name_Test():#定义一个函数
    name=input('请输入你的名字:')
    try:
        if len(name)>4:
            raise Test(Exception)#raise关键字是抛出异常
        else:
            print(name)#没有错误就输出
    except Test as e:
        print(e)#捕获异常输出
        pass
    finally:#不管有没有捕获到异常,finally都是执行的
        print('执行完毕')

name_Test()

输出:
在这里插入图片描述

如果输出超过4个字符的名字,就执行自定义的异常提示

在这里插入图片描述

本人博客:https://blog.csdn.net/weixin_46654114
本人b站求关注:https://space.bilibili.com/391105864
转载说明:跟我说明,务必注明来源,附带本人博客连接。

请给我点个赞鼓励我吧
在这里插入图片描述

以上是关于学编程必须得会的异常处理的主要内容,如果未能解决你的问题,请参考以下文章

自学也能学得会的《零基础入门学习Web开发》(HTML5 & CSS3)

iptables必须得会所以打开学吧!!!

后端也得会的两万字CSS技术(下篇)

后端也得会的两万字CSS技术(下篇)

后端也得会的两万字CSS技术建议收藏(上篇)

数据结构和算法学编程必知必会的50个代码实现,你都会了吗?