前言
📢 博客主页:?布小禅? 📢 作者专栏: ?Python? ?Java?
关于异常处理,这个是必学的
一、异常/错误
异常就是我们在写代码的时候,爆红啦,高亮啦什么的,还有运行的时候碰到的各种报错啦
我们经常会因为各种各样的报错而头疼——哦!天呐!又报错了!
但是我们应该想想好的,我们编程水平不也随着解决各种各样的报错而提高了吗?
当然我们也可以通过某些方式来避免这种异常,当然这是我们在解决了许许多多的报错后的事啦,也就是现在!是的没错就是现在!O(∩_∩)O哈哈~
一般分为三个类型:编译时错误 、运行时错误 、逻辑型错误
1 编译时错误
就是在写代码的时候,出现了语法上的错误,比如在定义变量的时候
i = 0
在这里,我们就犯了个编译时的错误,缩进不对
IndentationError: unexpected indent
2. 运行时错误
就是语法上没有出现错误,但是编译的时候会出现错误,比如
li = [1, 2, 3, 4, 5]
print(li[5])
在这里,虽然不会爆红,但是却会在运行的时候出现错误
IndexError: list index out of range
意思是索引超出范围,我们的列表的长度为5,但是下标却是从0开始的
3. 逻辑型错误
就是我们的代码不符合逻辑
a = 1;
b = 0;
print(a/b)
就会出现错误
ZeroDivisionError: division by zero
二、异常处理
知道了异常都是些什么类型的,那么我们就来看看,异常怎么处理
是的,我们需要处理异常
在异常没有发生的时候,就将它预料到,提前给他处理了
这叫什么?很明显嘛!紧急避险!
1. 捕获异常
可以使用try:…except:…语句来捕获异常
格式:
try:
有可能出错的代码块
except 错误类型(可选):
如果出错应该执行的代码
else:
如果没错应该执行的代码
finally:
不管有没有出错,都会执行的代码
当然那个错误类型,如果你不知道是什么类型,不写也可以
直接写解决方案就可以
1.1 try except finally语句
try:
1/0
except:
print("被除数不能为0")
finally:
print("不要捣乱哦,好好输入")
1.2 try except else finally语句
try: 1/1except: print("被除数不能为0")else: print("运算正确")finally: print("不要捣乱哦,好好输入")
2. 抛出异常
将异常抛出给控制台
也就是平常见的红色报错
try: print(a)except NameError as e: pass
这个代码不抛出异常的话,就什么都不执行,正常结束
而如果抛出异常就是这样
try: print(a)except NameError as e: raise e
3. 自定义异常
通过继承Exception 类来实现自定义异常类
class MyError(Exception):
def __init__(self, value):
self.value = value
def __str__(self):
return self.value
try:
raise MyError(2)
except MyError as e:
print(e.value)
输出:
结语
兴趣是最好的老师,坚持是不变的真理。 学习不要急躁,一步一个脚印,踏踏实实的往前走。 每天进步一点点,日积月累之下,你就会发现自己已经变得很厉害了。
我是布小禅,一枚自学萌新,跟着我每天进步一点点吧!
说了这么多暂时也就够了,那么就告辞吧
|