欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python print error 空_python笔记37:10分钟掌握异常处理,再也不担心程序挂了

发布时间:2023/12/1 python 55 豆豆
生活随笔 收集整理的这篇文章主要介绍了 python print error 空_python笔记37:10分钟掌握异常处理,再也不担心程序挂了 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

主要内容:

  • 小目标:异常处理
  • 主要内容:错误与异常,try_except语句

对于撸代码的程序员来说,程序运行中出现问题是常见的现象;

实际学习与工作中,我们会花很大的精力去解决各种问题;

1. 程序中问题:

Python中出现问题,主要分为下面几种:

代码编写问题,比如:语法错误;

程序运行时异常,比如:除0错误,序列越界错误;

计算机硬件错误,比如:磁盘损坏,网络异常等;

程序逻辑问题,比如:死循环,算法问题等;

如何解决以上问题:

语法问题,python解释器会检查;

程序运行时异常,程序直接停止运行,并报出异常;

硬件问题:检查硬件

逻辑问题:通过单步调试或者print信息通过代码检查;

这里我们主要讲解程序运行时异常。

2. 语法问题:

常见语法错误:

  • 例1:
if a > 10 pass

结果:

File "", line 1 if a > 10 ^SyntaxError: invalid syntax

分析:python解释器输出信息,第一行,语法错误;

  • 例2:
a = 10if a > 10: pass pass

结果:

File "", line 4 pass ^IndentationError: unexpected indent

分析:缩进问题;

3. 常见异常:

例1:

if b > 10: pass

结果,变量b没有定义:

NameError Traceback (most recent call last) in ----> 1 if b > 10: 2 passNameError: name 'b' is not defined

例2:

int('c')

结果,字符串转整数错误:

ValueError Traceback (most recent call last) in ----> 1 int('c')ValueError: invalid literal for int() with base 10: 'c'
  • 分析:

遇到异常问题,查看解释器报错;

找到问题所在行,分析并解决问题;

问题:某些情况下程序出现异常,

我们并不希望程序终止运行:例如:

网络抖动,希望重试几次;

数据库查找异常,可以跳过继续查找;

读取配置文件,IO错误,可以使用默认配置....

4. 异常处理

4.1 try/except语句

Python中可以使用try/except解惑处理异常,例如:

try: if b > 10: pass print("run here 1")except Exception as e: print("Error:", e)print("run here 2")

结果:

Error: name 'b' is not defined

从结果中可以看到,程序并没有因为变量b没有定义而停止运行

  • 分析:

try/except用来处理异常;

若程序没有异常,执行完try中的代码段;

若程序在try代码段出现异常,try语句截获异常,停止当前代码段执行,去执行except中代码

问题:如何只处理指定异常?

4.2 except:

except后面可以添加为指定异常类型;

常见的异常类型:

常见异常

下面我们指定异常:

try: if b > 10: pass print("run here 1")except IOError as e: print("Error:", e)print("run here 2")

结果:异常处理并未生效

程序中设置捕获异常为:IOError;

程序中触发异常为NameError,try/except并不对此异常进行处理;

对比:Exception为异常基类,可以捕获所有异常;

1 try:----> 2 if b > 10: 3 pass 4 print("run here 1") 5 except IOError as e:NameError: name 'b' is not defined

4.3 try/except设置捕获多个异常:

使用多个except指定异常,直接上代码:

try: if b > 10: pass print("run here 1")except IOError as e: print("IOError:", e)except NameError as e: print("NameError:", e)print("run here 2")

结果,捕获到了NameError:

NameError: name 'b' is not definedrun here 2

4.4 不能处理的错误:

例如,语法错误

try: if b>10 passexcept Exception as e: pass

结果:Python解释器首先检查语法问题,程序尚未运行,所以不能处理语法错误:

if b>10 ^SyntaxError: invalid syntax

4.5 try/finally

基本语法:

try: passexcept: passfinally: pass

程序是否遇到异常,都会执行finally语句,一般finally中用于释放资源;

  • 例1:程序中无异常
try: b = 20 if b>10: passexcept Exception as e: print("Error:", e)finally: print("finally")

结果:finally

  • 例2:程序中出现异常
try: if d>10: passexcept Exception as e: print("Error:", e)finally: print("finally")

结果:

Error: name 'd' is not definedfinally

以上就是Python中异常处理方式。

总结:

理解错误与异常;

掌握try/except/finally语句;

try/except不能处理语法错误

总结

以上是生活随笔为你收集整理的python print error 空_python笔记37:10分钟掌握异常处理,再也不担心程序挂了的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。