PYTHON-异常处理

什么是异常?

异常是在程序执行过程中发生的,影响程序的正常运行

常见的语法错误

在这里插入图片描述
使用try…except进行异常处理
我们把可能发生错误的语句放在try模块里,用except来处理异常。except可以处理一个专门的异常,也可以处理一组圆括号中的异常,如果except后没有指定异常,则默认处理所有的异常。每一个try,都必须至少有一个except。

try:
	被检测的代码块
except 异常类型:
	一旦检测到异常,则执行这个位置的语句

万能异常Exception

s1 = 'hello'
try:
	int(s1)
except Exception:
	print(e)

多分支情况

try:
	int(s1)
except IndexError as e:
	<语句1>
except KeyError as e:
	<语句2>
except ValueError as e:
	<语句3>
except Exception as err:    #err可以明确报错的原因
	print('---->',err)   #放在最后面,异常的判断顺序从上往下
	        

异常的其他结构try…finally
文件操作和数据库操作时,无论是否报错,都要执行.close()操作,将其放入finally语句中。

try:
	return 1
except:
	return 2
finally:
	return 3  #无论是否异常都会执行这里的代码
	#这里会返回3,直接覆盖前面return的值,前面的return不会直接返回,需要执行完finally才结束

try…else

try:
	有可能有异常的代码
except 异常类型:
	pass
	..
else:
	如果try中没有发生异常则进入的代码
#注意:如果使用else则在tr代码中不能出现return

异常抛出raise
我们可以使用raise自己触发异常,语法格式如下:
raise [Exception [, args [, traceback]]]
语句中Exception是异常的类型(例如,NameError)参数是一个异常参数值。该参数是可选的,如果不提供,异常的参数是"None"。

最后一个参数是可选的(在实践中很少使用),如果存在,是跟踪异常对象。

def register():
	username = input('输入用户名:')
	if len(username)<6:
		raise Exception('用户名长度必须6位以上')
	else:
		print('输入的用户名是:'username)
try:
	register()
except Exception as err:
	print(err)
else:
	print('注册成功')

采用traceback模块查看异常

import traceback
 
try:
    1/0
except Exception as e:
    traceback.print_exc()  #可以直接追溯到出错点
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值