Python3.x基础学习-异常报错处理
2021-02-16 03:18
标签:字符 pre 业务逻辑 对象 over base 抛出异常 exe under 异常就是语法正常的前提下,程序运行时报错就是异常 常见的报错信息: try正常执行结束,不会走except,走else 内层try无法捕获异常,会向外传递 变量名也可以作为异常的对象,一般使用e来表示 Python3.x基础学习-异常报错处理 标签:字符 pre 业务逻辑 对象 over base 抛出异常 exe under 原文地址:https://www.cnblogs.com/johnsonbug/p/12709995.html异常处理
当python脚本发生异常时我们需要捕获处理它,否则程序会终止执行print(‘hello world‘)
print(1/0) # ZeroDivisionError: division by zero
print(‘代码结束‘)
异常处理 try,except,else,finally,raise
程序从上到下执行,先执行try的代码,如果代码报错,则不会执行下面的代码
执行except中的异常代码
如果try没报错,则不执行except中代码try:
print(‘hello word‘)
print(1/0)
except IndexError:
print(‘索引异常‘)
except ZeroDivisionError:
print(‘o是除数异常‘)
except:
print("代码有错误")
print(‘最后的代码‘)
ZeroDivisionError,IndexError,NameError,FileNotFoundError,FileExistsError,TypeError
try中有错误,走except,不走else
无论代码有无异常,都会走finallytry:
print("abc")
print(1/0)
print(‘b‘)
except BaseException:
print("出现错误了")
else:
print("没有异常")
finally:
print("有无异常都得给我跑起来")
外层异常无法捕获,会继续向外传递,知道捕获异常为止,没捕获报错try:
with open(‘test2.py‘,‘w+‘) as f:
content = f.read()
try:
with open(‘test3.txt‘,‘r‘) as f:
print(f.read())
except FileExistsError:
print("文件未发现错误")
except BaseException:
print(‘外层捕获‘)
e对象中包含了异常信息的一些描述,我们可以根据描述做不同的处理try:
print("hello world")
print(1/0)
print("over")
except Exception as e:
print(e)
def func1():
print("--func1-1-")
print(num)
print(‘---func1-2-‘)
def func2():
try:
print(‘---func2--1‘)
func1()
print(‘----func2--2‘)
except FileNotFoundError:
print("func1出现异常")
else:
print(‘----func2--3‘)
finally:
print("最后的代码")
try:
func2()
print(‘func2执行完了‘)
except NameError:
print("命名错误")
用户可以根据业务逻辑手动抛出异常
并且用户可以根据需求来抛出系统异常(python 已经定义好的异常)和用户自定义异常try:
name = a
if name.isalpha():
raise Exception(‘不能全是字母‘)
except BaseException as e:
print("----exception----",e)
class ShortInputException(Exception):
pass
try:
raise ShortInputException(‘输入太短‘)
except BaseException as e:
print(e)
# 判断输入的字符串长度,如果小于指定长度就报错
class MyException(Exception):
def __init__(self,length,atleast):
self.length = length #输入的字符串长度
self.atleast = atleast
def __str__(self):
return ‘长度{},规定长度{}‘.format(self.length,self.atleast)
try:
msg = input("请输入:")
if len(msg):
raise MyException(len(msg),5)
except Exception as e:
print(e)
下一篇:机器学习三 —— K均值算法
文章标题:Python3.x基础学习-异常报错处理
文章链接:http://soscw.com/index.php/essay/55904.html