十 Python 异常捕获

十 Python 异常捕获

介绍:

用于捕获代码运行中出现的错误,保证代码的流畅度

try:
	正常程序
except:
	抛出错误时执行的代码块

示例:

  1. 常规
while True:
	try:
		ipt = input("请输入:")
		i = float(ipt)

	except Exception as e: #	e = Exception()
	'''
	e 是 Exception对象,对象中封装了错误信息
	上述代码如果出错,自动执行当前块的内容
	'''
	print(e)
	i = 1
	print(i)
  1. Python中查看所有错误信息
help(__builtin__)
  1. 异常捕获2
    示例:
try:
	int('a')

except ValueError as e:	#	e = ValueError()
	print("valueError",e)
except ZeroDivisionError as e:
	print("ZeroDivisionError",e)
except Exception as e:
	print(e)
else:
	print("没有异常,请执行我")
finally:
	print("不管出不出错,都要执行")

tips:
as 能够用来重命名
以上细分的错误都是Exception的子类
细分错误的作用:为了一个种类的错误记录日志
为了避免程序最后报错,在最后可以用到Exception捕获异常
如果有错,执行except里的代码块
如果没有错误,执行else
finally:不管处不出错,肯定执行

  1. 自定义异常 raise Excepting(msg)
try:
	raise Exception("我生气了")
except Exception as e:
	print(e)

def demo():
	return False

def demo1():
	try:
		int('a')
		res = demo()
		if not res:
			#打开文件,写日志
			raise Exception("demo中有异常")
	except Exception as e:
		print(e)

tips:

  1. 要有自定义模块
  2. 捕获自定义的异常
class OldAmyError(Exception):
    def __init__(self,msg):
        self.error_info = msg

    def __str__(self):
        return self.error_info


# err = OldAmyError("咖啡说我是胖子")
# print(err)
try:
    # 抛出错误信息
    raise OldAmyError("咖啡说我是胖子")     #  err = OldAmyError("咖啡说我是胖子")
except OldAmyError as err:
    print(err)
  1. assert 条件
    tips:
    如果条件成立,代码继续往下执行
    如果条件不成立,直接抛出异常
    强制用户服从,可捕获,但是不捕获
print(123)
assert 2.0 == 2   # AssertionError
print(456)
发布了27 篇原创文章 · 获赞 11 · 访问量 1494

猜你喜欢

转载自blog.csdn.net/weixin_45550881/article/details/103545156