Python基础知识(九)—— 异常

异常

定义

  • 异常是指程序中的例外,违例,影响程序正常执行的情况
  • 异常机制是指程序出现错误后,程序的处理方法
  • 不处理异常,程序中止

语法

try:
	<语句>#可能发生异常的代码
except<名字>:
	<语句>#如果在try部份引发了'name'异常
except<名字> as <异常参数>:
	<语句>#如果引发了‘name’异常,获得附加的异常对象
else: 
	<语句>#如果没有异常发生

try-except

  • 不带参数的try- except语句捕获所有发生 的异常
import sys
try :
	n= 0
	print (10 / n) 
except:
	print ("做除法时发生异常!")

try-except(Exception1[,Exception2[,…ExceptionN]]])

  • 可以使用一个except语句来处理多个类型 异常,也可以针对不同的异常 ,分别写一个except语句
try:
	fp = open('t.txt','r')
	content=fp.read()
	fp.close()
except IOError:
	print('读取文件时,发生IOerror 异常!')
else:
	print('文件读取成功')
	print(content)

try-finally/else

  • 在try块中抛出一个异常,程序会立即执行finally块代码(如果有的话)
  • 当finally 块中的所有代码被执行结束后,异常才会被再次提出,并执行except块代码
  • finally和else语句块可以同时存在。如果发生异常只执行finally语句块,否则两语 句块都会执行
import sys
try:
	s=input('Enter something-->')
except KeyboardInterrupt:
	print('\nwhy did you do an Ctrl+c on me?')
	sys.exit()
except:
	print('\nSome error/exception occurred.')
else:
	print('no exception occur!')
finally:
	print('finally is executed!')

try-finally

try:
	fp=open('a.txt','r')
	try:
		content=fp.read()
		print(content)
	finally:
		print('关闭文件')
		fp.close()
except IOError:
	print('Error:没有找到文件或读取文件失败')
	

异常参数

语法
try-except ExecptionType,argument

  • 一个异常可以带上参数,可作为输出的异常信息参数。通过except语句来捕获异 常的参数
  • 异常参数接收的异常值通常包含在异常的语句中。在元组的表单中变量可以接收 一个或者多个值。元组通常包含错误字符串,错误数字,错误位置
try:
	fp=open('c.txt','r')
	try:
		content=fp.read()
	finally:
		fp.close()
except Exception as e:
	print('文件读取失败')
	print('打印异常信息')
	print(e)

raise 触发异常

语法:
raise[SomeExcpetion[, args [, traceback]]]

  • SomeExcpetion:是一个异常的类型,如NameError,可选;
  • args:是一个异常参数值,通常为元组,可选,如果不提供为“None”。
  • traceback:可选的,实际很少用,如果存在,是跟踪异常对象。
  • 如果有 其他参数(arg 或traceback),就必须提供SomeExcpetion
import traceback
try:
	value=input('请输入一个整数:')
	if not value.isdigit():
		raise ValueError('not a int')
except ValueError as e:
	print('值错误:',e)		

自定义异常

class Networkerror(RuntimeError):
	def __init__(self,value):
		self.value = value
try:
	raise Networkerror('bad hostname')
except Networkerror as e:
	print('My exception occured,value',e.value)
	
微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值