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

铭万网站建设深圳百度地图

铭万网站建设,深圳百度地图,江苏省建设教育协会网站,如何查网站的百度快照Python3 错误和异常 作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。 Python 有两种错误很容易辨认:语法错误和异常。 Python assert(断…

Python3 错误和异常

作为 Python 初学者,在刚学习 Python 编程时,经常会看到一些报错信息,在前面我们没有提及,这章节我们会专门介绍。

Python 有两种错误很容易辨认:语法错误和异常。

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

在这里插入图片描述

标准异常如下列表

异常名称描述
Exception所有异常的基类
StopIteration当一个迭代器的 next()方法不指向任何对象时引发
SystemExit由 sys.exit()函数引发
StandardError除了StopIteration异常和SystemExit,所有内置异常的基类
ArithmeticError数值计算所发生的所有错误的基类
OverflowError当数字类型计算超过最高限额引发
FloatingPointError当一个浮点运算失败时触发
ZeroDivisonError当除运算或模零在所有数值类型运算时引发
AssertionError断言语句失败的情况下引发
AttributeError属性引用或赋值失败的情况下引发
EOFError当从 raw_input() 与 input() 函数输入,到达文件末尾时触发
ImportError当一个 import 语句失败时触发
KeyboardInterrupt当用户中断程序执行,通常是通过按 Ctrl+c 引发
LookupError所有查找错误基类
IndexErrorKeyError当在一个序列中没有找到一个索引时引发当指定的键没有在字典中找到引发
NameError当在局部或全局命名空间中找不到的标识引发
UnboundLocalErrorEnvironmentError试图访问在函数或方法的局部变量时引发,但没有值分配给它。Python环境之外发生的所有异常的基类。
IOErrorIOError当一个输入/输出操作失败,如打印语句或 open()函数试图打开不存在的文件时引发操作系统相关的错误时引发
SyntaxErrorIndentationError当在Python语法错误引发;没有正确指定缩进引发。
SystemError当解释器发现一个内部问题,但遇到此错误时,Python解释器不退出引发
SystemExit当Python解释器不使用sys.exit()函数引发。如果代码没有被处理,解释器会退出。当操作或函数在指定数据类型无效时引发
ValueError在内置函数对于数据类型,参数的有效类型时引发,但是参数指定了无效值
RuntimeError当生成的错误不属于任何类别时引发
NotImplementedError当要在继承的类来实现,抽象方法实际上没有实现时引发此异常

在Python中断言

断言是一种理智检查,当程序的测试完成,你可以打开或关闭。
断言的最简单的方法就是把它比作 raise-if 语句 (或者更准确,加 raise-if-not 声明). 一个表达式进行测试,如果结果出现 false,将引发异常。
断言是由 assert 语句,在Python中新的关键字,在Python1.5版本中引入使用的关键字。
程序员常常放置断言来检查输入的有效,或在一个函数调用后检查有效的输出。

assert 语句当它遇到一个断言语句,Python评估计算之后的表达式,希望是 true 值。如果表达式为 false,Python 触发 AssertionError 异常。

断言的语法是 -

assert Expression[, Arguments] 

如果断言失败,Python使用 ArgumentExpression 作为AssertionError异常的参数。AssertionError异常可以被捕获,并用 try-except语句处理类似其他异常,但是,如果没有处理它们将终止该程序并产生一个回溯。

示例这里是一个把从开氏度到华氏度的温度转换函数。

#!/usr/bin/python3
def KelvinToFahrenheit(Temperature):assert (Temperature >= 0),"Colder than absolute zero!"return ((Temperature-273)*1.8)+32print (KelvinToFahrenheit(273))
print (int(KelvinToFahrenheit(505.78)))
print (KelvinToFahrenheit(-5))

当执行上面的代码,它产生以下结果 -

32.0
451
Traceback (most recent call last):
File "test.py", line 9, in 
print KelvinToFahrenheit(-5)
File "test.py", line 4, in KelvinToFahrenheit
assert (Temperature >= 0),"Colder than absolute zero!"
AssertionError: Colder than absolute zero!

except子句中无异常

也可以使用 except 语句定义如下无异常声明如下 -

try:You do your operations here......................
except:If there is any exception, then execute this block.......................
else:If there is no exception then execute this block. 

except子句与多个异常

也可以使用相同的 except 语句来处理多个异常,具体如下 -

try:You do your operations here......................
except(Exception1[, Exception2[,...ExceptionN]]]):If there is any exception from the given exception list, then execute this block.......................
else:If there is no exception then execute this block. 

try/except…else

try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。

else 子句将在 try 子句没有发生任何异常的时候执行。

在这里插入图片描述
以下实例在 try 语句中判断文件是否可以打开,如果打开文件时正常的没有发生异常则执行 else 部分的语句,读取文件内容:

for arg in sys.argv[1:]:try:f = open(arg, 'r')except IOError:print('cannot open', arg)else:print(arg, 'has', len(f.readlines()), 'lines')f.close()

使用 else 子句比把所有的语句都放在 try 子句里面要好,这样可以避免一些意想不到,而 except 又无法捕获的异常。

异常处理并不仅仅处理那些直接发生在 try 子句中的异常,而且还能处理子句中调用的函数(甚至间接调用的函数)里抛出的异常。例如:

>>> def this_fails():x = 1/0>>> try:this_fails()except ZeroDivisionError as err:print('Handling run-time error:', err)Handling run-time error: int division or modulo by zero

try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

在这里插入图片描述

以下实例中 finally 语句无论异常是否发生都会执行:

try:runoob()
except AssertionError as error:print(error)
else:try:with open('file.log') as file:read_data = file.read()except FileNotFoundError as fnf_error:print(fnf_error)
finally:print('这句话,无论异常是否发生都会执行。')
http://www.15wanjia.com/news/52561.html

相关文章:

  • 阿里巴巴 商城网站怎么做百度快照如何优化
  • 洛阳网站建设百度云在线登录
  • 竞价网站做招商加盟可以不备案吗网站安全检测平台
  • wordpress订单提醒seo网络营销外包公司
  • 搭建网站的六个基本步骤流程适合员工的培训课程
  • 常用网站开发语言的优缺点新闻稿在线
  • 江苏省建设集团有限公司网站网络推广大概需要多少钱
  • 学室内设计学费大概要多少钱?广州aso优化公司 有限公司
  • 做app要不要建网站企业网站seo推广
  • 互联网投诉服务平台关键词排名优化营销推广
  • 教务系统管理系统长沙网址seo
  • 代购网站建设全网网络营销
  • 深圳品牌蛋糕店有哪些品牌排行盐城seo推广
  • 做网站电商云数据库有用吗东莞疫情最新消息
  • 资源网站很难做百度百家自媒体平台注册
  • 哪些网站可以做推广app注册拉新平台
  • 常规网站服务器近一周的新闻大事热点
  • 中山网站代运营搜索引擎入口网址
  • 怎么使用源码建网站百度下载并安装最新版
  • 网站建设中其他可能的问题百度权重查询工具
  • wordpress主题xueui朝阳网站seo
  • 做影视网站 片源从哪里来厦门人才网个人版
  • 蒙古文政务网站群建设工作方案冯耀宗seo博客
  • 嘉兴城乡建设网站百度网址是多少
  • 彩票网站开发的风险百度无广告搜索引擎
  • 如何做购物网站的后台免费发布信息网平台
  • 建设大型网站制作品牌外包seo服务收费标准
  • 竞价可以做两个网站吗seo优化服务公司
  • wordpress站点统计代码seo培训中心
  • 网站建设工作会议.seo关键词布局