python进阶系列 - 09 异常 Exception_raising too general exception exception

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

结果:

  File "/usercode/main.py", line 1
    a = 5 print(a)
              ^
SyntaxError: invalid syntax

异常 - Exceptions

即使语句是正确的,也可能在执行时引发错误。 这是一个异常错误。有几个不同的错误类,例如尝试将一个数字和字符串相加将引发一个TypeError

代码:

a = 5 + '10'

结果:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
/usercode/main.py in <module>
----> 1 a = 5 + '10'

TypeError: unsupported operand type(s) for +: 'int' and 'str'

抛出异常 - Raising an Exception

如果你想在某个条件发生时强制抛出异常,可以使用raise关键字。

代码:

x = -5
if x < 0:
    raise Exception('x不可以是负数')

结果:

---------------------------------------------------------------------------
Exception                                 Traceback (most recent call last)
/usercode/main.py in <module>
      1 x = -5
      2 if x < 0:
----> 3     raise Exception('x不可以是负数')

Exception: x不可以是负数

你也可以使用assert语句,它会在你的断言为为真时抛出AssertionError。 这样,你可以主动测试一些条件,必须被满足而不是等待你的程序意外地崩溃。
assert也被用于单元测试

代码:

x = -5
assert (x >= 0), 'x不是负数'
# --> 在x不是负数时,抛出AssertionError

结果:

---------------------------------------------------------------------------
AssertionError                            Traceback (most recent call last)
/usercode/main.py in <module>
      1 x = -5
----> 2 assert (x >= 0), 'x不是负数'
      3 # --> 在x不是负数时,抛出AssertionError

AssertionError: x不是负数

处理异常 - Handling Exceptions

你可以使用try-except块来捕获和处理异常。 如果你捕获了异常,那么程序不会终止,可以继续执行。

# 这将捕获所有可能的异常
try:
    a = 5 / 0
except:
    print('发生了一些错误!')
# 你也可以捕获异常的类型
try:
    a = 5 / 0
except Exception as e:
    print(e)
# 它是一个好习惯,指定你想捕获的异常类型
# 因为,你必须知道可能的错误

try:
    a = 5 / 0
except ZeroDivisionError:
    print('仅仅捕获了除零异常,而没有捕获其他的异常。')
# 你可以在一个try块中运行多个语句,并且捕获不同的可能的异常
try:
    a = 5 / 1  # 注意:没有ZeroDivisionError这里
    b = a + '10'
except ZeroDivisionError as e:
    print('除零错误:', e)
except TypeError as e:
    print('类型错误:', e)

结果:

发生了一些错误!
division by zero
仅仅捕获了除零异常,而没有捕获其他的异常。
类型错误: unsupported operand type(s) for +: 'float' and 'str'

else 子句

你可以使用else语句,它在没有发生异常时执行。

代码:

try:
    a = 5 / 1
except ZeroDivisionError as e:
    print('除零错误:', e)
else:
    print('一切正常!')

结果:

一切正常!

finally 子句

你可以使用finally语句,它总是会执行,无论是否发生异常。 这是为了做一些清理工作。

try:
    a = 5 / 1  # 注意:没有ZeroDivisionError这里
    b = a + '10'
except ZeroDivisionError as e:
    print('发生了除零错误:', e)
except TypeError as e:
    print('发生了类型错误:', e)
else:
    print('一切正常!')
finally:
    print('无论是否发生异常,都会执行的代码')

结果:

发生了类型错误: unsupported operand type(s) for +: 'float' and 'str'
无论是否发生异常,都会执行的代码

内建异常 - built-in Exceptions

你可以在官网查看所有的内建的异常,以下是常见的异常:

  • ImportError:如果一个模块不能被导入
  • NameError:如果你尝试使用一个未定义的变量
  • FileNotFoundError:如果你尝试打开一个不存在的文件或者你指定了错误的路径
  • ValueError:当一个操作或者函数接收到一个合适的类型的参数,但是参数的值不合适时,比如尝试从一个列表中移除一个不存在的值
  • TypeError:当一个操作或者函数应用了一个不适合的类型的对象时,比如尝试从一个列表中移除一个不存在的值
  • IndexError:如果你尝试访问一个不存在的索引
  • KeyError:如果你尝试访问一个不存在的键

代码:

# 定义一个函数,打印内置异常
def printErr(code, message):
    print(f">>>{message} 演示:\n")


### 一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。



![](https://img-blog.csdnimg.cn/img_convert/9f49b566129f47b8a67243c1008edf79.png)



### 二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。



![](https://img-blog.csdnimg.cn/img_convert/8c4513c1a906b72cbf93031e6781512b.png)



### 三、入门学习视频



我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。



![](https://img-blog.csdnimg.cn/afc935d834c5452090670f48eda180e0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56iL5bqP5aqb56eD56eD,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 28
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值