当前位置: 首页 > news >正文

阿里云空间做网站网站 tag标签

阿里云空间做网站,网站 tag标签,网站建设服务费用,品牌全案设计公司为什么要处理异常? 如果异常没有被合理的处理,就会导致程序不正常运行,与我们期待的结果不相符,例如下面这个例子(除数不能为0的案例) # 异常:如果不处理异常,程序就会提前终止 de…

为什么要处理异常?

如果异常没有被合理的处理,就会导致程序不正常运行,与我们期待的结果不相符,例如下面这个例子(除数不能为0的案例)

# 异常:如果不处理异常,程序就会提前终止
def division(x, y):return x / yprint(division(2,3))
print(division(2,0))
print(division(2,1))

执行结果
在这里插入图片描述

异常处理正确流程try-except - else - finally

python的关键字finally功能是和try配合使用,在try之后可以有except或者else,finally关键词必须放在except和else之后,不论是否有异常发生一定会执行finally当中的逻辑。
例如:一定除数不能为0的try-except-else的处理逻辑

# 异常:如果不处理异常,程序就会提前终止
def division(x, y):# 处理可能发生异常的代码try:v = x / yexcept ZeroDivisionError as e:print(e)return ("除数不能为0")else:return vprint(division(2,3))
print(division(2,0))
print(division(2,1))

执行结果如下
在这里插入图片描述
当然,实际代码中有N中可能出现的错误异常,因此在excepte中还可能回处理其他异常,例如数据类型错误,例如

print(division('s',1))

执行结果为typeError
在这里插入图片描述
所以可能也需要处理不止一个异常

# 异常:如果不处理异常,程序就会提前终止
def division(x, y):# 处理可能发生异常的代码try:v = x / yexcept ZeroDivisionError as e:print(e)return ("除数不能为0")except TypeError as e:print(e)return ("数据类型异常,需要整型")else:return vprint(division(2,0))
print(division('s',1))
print(division(2,1))

在这里插入图片描述
除了这种可以预料的处理,我们还需要兜底处理逻辑,来保证其他异常被处理掉,所以需要用baseException来多兜底

    except BaseException as e:print(e)return ("发生了异常")

除此之外,如果有数据库相关资源需要关闭,文件资源需要处理都可以在finally中进行处理,因为finally中逻辑无论是否发生异常都可以保证被执行

# 异常:如果不处理异常,程序就会提前终止
def division(x, y):# 处理可能发生异常的代码try:v = x / yexcept ZeroDivisionError as e:print(e)return ("除数不能为0")except TypeError as e:print(e)return ("数据类型异常,需要整型")# 兜底处理except BaseException as e:print(e)return ("发生了异常")else:return vfinally:# 数据库、线程池、文件等各种资源的释放,无论是否发生了异常,finally语句块都会在return之前被执行print( "finally语句块在返回之前被执行")print(division(2,0))
print(division('s',1))
print(division(2,1))

执行结果如下
在这里插入图片描述

自定义异常的抛出

举个例子:检测考试是否通过的异常,60分以上为通过

# 自定义异常
class scoreException(BaseException):# 构造方法def __init__(self, msg):super().__init__(msg)# 自定义函数
def checkScore(score):if score < 60:raise scoreException("Score is too low!")else:print("Score is ok!")# test方法
try:score = int(input("Enter a score number: "))checkScore(score)
except scoreException as e:print(e)print("continue other logic")

执行结果1
在这里插入图片描述
执行结果2
在这里插入图片描述

http://www.dtcms.com/a/539222.html

相关文章:

  • 专业建网站平台wordpress多个站点
  • 河北廊坊网站建设阿里云wordpress
  • 网站开发 网络后台维护作用wordpress网站下载文件
  • vue企业门户网站模板网站 备案 查询
  • 网站如何做品牌宣传义乌来料加工网
  • 网站开发属于软件开发吗手工小制作
  • 网站导航条用什么做厦门做医院网站设计的公司
  • 网站做的好的tkd狠狠做狠狠干免费网站
  • h1z1注册网站手机网站底部固定菜单
  • 高新公司网站建设电话dedecms做网站全教程
  • 株洲网站关键词优化wordpress 添加点赞
  • 西安做网站哪里好wordpress 上传ssl证书
  • 免费建站资源花都移动网站建设
  • 廊坊网站建设公司哪个好企业公众号运营方案
  • 学习前端的网站.net网站方案
  • 网站查询域名入口百度seo点击工具
  • 网站布局设计教程wordpress技术类博客
  • 网站建设 数据库东城网站建设哪家好
  • 拼客多网站多少钱可以做常用的网站建设程序有哪些
  • 国外做旅游攻略的网站网站建设安装部署必须买吗
  • 贵州省兴义市建设局网站做网站的公司cnfg
  • 湖北省市政工程建设网站58和搜房那个网站做房产好
  • ps怎么做网站导航内嵌式建设局网站作用
  • 机场建设投资公司官方网站建网站备案
  • 濮阳做网站推广在线做网站怎么做
  • 怎么免费做网站汕头百度seo公司
  • 儿童编程培训机构关键词优化快排
  • 做金融量化的网站网站模版如何建
  • 建设网站最快多长时间工程建设
  • 做网站需要会什么 知乎菏泽的给公司做网站的