我是靠谱客的博主 健康荔枝,最近开发中收集的这篇文章主要介绍python中异常处理的作用,Python之异常处理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Python 异常处理

1.捕获异常  (作用:程序运行过程中,可能会出现意想不到的异常,如果异常未被解决,程序会崩溃,停止运行)

#例如,以下例子

a='name'

print(a[10]) #报错:IndexError: string index out of range

print('今天是个好天气') #报错后面的程序将不会执行

所以,异常处理就显得很有必要

捕获异常的基础语法:

1.处理异常定义,如果出现异常,我们会让它按照事先规定的规则去执行对应的操作,从而记录报错的log日

2.语法:

try(要运行有可能出现异常的代码):

(缩进)存放可能出现报错的代码模块

except(异常):

(缩进)出现异常的时候要运行的代码(执行的操作),记录日志

一旦try里面的代码报错,会立即跳到except,try报错代码的下面的剩余语句将不会执行

try:

a = 'name'

print(a[10])

print('今天是个好天气')

except:

print('try模块存在报错,后续程序不能被执行')

输出结果:

try模块存在报错,后续程序不能被执行

3.如果try模块下的代码没有出现异常,则正常执行,不会执行except模块下的代码

try:

a = 'name'

print(a[2])

print('今天是个好天气')

except:

print('try模块存在报错,后续程序不能被执行')

输出结果:

m

今天是个好天气

4.一般,在写异常处理模块时,都要预先考虑到,可能会出现报错的地方,然后将其放到try里面,从而防止报错影响程序的整体执行

#前期预判

a = 'name'

print(a[2]) #a变量是一个字符串,根据索引值取字符串的值,所以可能存在索引值超出字符串的长度的报错

print('今天是个好天气')

#案例二

b=12

c=23

print(b*c)

#b和c都是变量,如果给予b和c赋予的数据类型非int和float类型,那就会报数据类型的错误,所以此处就需要加 异常处理

5.使用try......except......语句捕获了异常,但是不清楚是哪里出现问题,是数据类型错误、超出范围错误还是其他的错误等等

面对以上的问题,可以使用 except  Exception as err:将错误类型赋值给err  ,打印出来

try:

a = 'name'

print(a[20])

print('今天是个好天气')

except Exception as err:

print('try模块存在报错{},后续程序不能被执行'.format(err))

输出结果:

try模块存在报错string index out of range,后续程序不能被执行

注意:工作当中,最好用以上的方法捕获异常,这样就可以很直观的看到报错的内容,也好定位问题

6.捕获异常的进阶:指明出现的异常类型

方法:先不加异常,执行代码,查看程序可能出现的报错类型,然后将报错的类型加入except 语句中就行

语法:

try:

(缩进)执行的代码模块

except  报错类型  as  err:

(缩进)print('异常{}'.format(err))

finally:    ---------------->该模块属于,不管有没有报错,里面的代码都会被执行

(缩进)  print('你好世界')

lst = ['hello']

a = 4

b = 0

try:

print(a/b)

print(lst[2])

except IndexError as err:

print('出现了异常:{}'.format(err))

except ZeroDivisionError as err:

print('出现除法异常:{}'.format(err))

finally:

print('hello wold')

#结果:

'''

出现除法异常:division by zero

出现除法异常:division by zero

hello wold

'''

7.手动抛出异常 raise

raise手动抛出异常,让程序终止运行

def join_team(age,gender):

if age > 22:

raise ValueError('年龄要小于22')

print('可以加入team')

print(join_team(23,'girl'))

'''

raise ValueError('年龄要小于22')

ValueError: 年龄要小于22

'''

8.错误类型介绍(以下错误类型,可以接下来了解使用)

ImportError :无法引入模块或包

IndexError:下标索引超出序列边界

NameError:使用一个还未赋予对象的变量

TypeError:传入的对象类型与要求不符合

SyntaxError:代码逻辑语法错误,不能执行,不能捕获

ValueError:传入一个不被期望的值,即使类型不正确

KeyError:试图访问你字典里不存在的key

IOError:输入输出异常,文件操作

9.异常分组

好处:如果我们发现了一个验证级别为阻塞级别的bug,短信通知开发人员马上集合解决问题,如果不同的错误类型,异常处理的行为是一样的,组合起来,就可以简化代码

try:

1 / 0

['hello'][3]

{'name':'pyrhon'}['age']

except (IndexError,KeyError) as e:

'短信通知这里出现很严重的问题'

print('可以捕获IndexError和KeyError')

except ZeroDivisionError as e:

'记录日志'

print('除法出现异常{}'.format(e))

最好不要直接用Exception,因为可以报错异常,但是也不知道报的是什么异常,再次排查问题时,会很浪费时间

标签:err,Python,except,try,处理,报错,print,异常

来源: https://www.cnblogs.com/lucky1212/p/14076433.html

最后

以上就是健康荔枝为你收集整理的python中异常处理的作用,Python之异常处理的全部内容,希望文章能够帮你解决python中异常处理的作用,Python之异常处理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部