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

能做视频的软件有哪些seo入门基础知识

能做视频的软件有哪些,seo入门基础知识,京东云免费建wordpress,淘宝客网站开发需求书第 11 章 错误和异常 11.1 异常介绍 Python是一门解释型语言,只有在程序运行后才会执行语法检查。所以,只有在运行或测试程序时,才会真正知道该程序能不能正常运行。 Python有两种错误很容易辨认:语法错误和异常。 11.1.1 语法错误…

第 11 章 错误和异常
11.1 异常介绍
Python是一门解释型语言,只有在程序运行后才会执行语法检查。所以,只有在运行或测试程序时,才会真正知道该程序能不能正常运行。
Python有两种错误很容易辨认:语法错误和异常。
11.1.1 语法错误
程序解析时遇到的错误。
例如以下程序,因缺少 : 而出现语法错误。
while True print(1)

while True print(1)

^^^^^

SyntaxError: invalid syntax

11.1.2 异常
Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。
例如以下程序,因变量名未找到而引发NameError。
print(var1)

print(var1)

^^^^

NameError: name ‘var1’ is not defined. Did you mean: ‘vars’?

大多数的异常都不会被程序处理,都以错误信息的形式打印出来,错误信息的前面部分显示了异常发生的上下文,并以调用栈的形式显示具体信息。
11.2 异常处理
对异常进行处理并不是将错误规避了,而是当程序运行的时候,出现错误的时候提供解决方案,不终止程序,可以让程序继续执行。
11.2.1 try except
可以使用 try except 语句来捕获异常并处理。
1)语法
try:
可能发生异常的代码
except:
异常处理的代码
 如果没有发生异常,程序会忽略except中的代码,继续向下执行。
 如果发生了异常,会忽略try中剩余代码,执行except中的代码。
2)案例
try:
result = 3 / 1
print(“没有发生异常”)
except:
print(“发生异常了”)
print(“End”)
11.2.2 捕获指定类型的异常以及获取异常描述信息
在打印出来的异常信息中,冒号之前是异常类型,冒号之后是异常描述信息

NameError: name ‘a’ is not defined

NameError: 冒号之前是异常类型

: name ‘a’ is not defined 冒号之后是异常描述信息

print(a)
如果出现的异常不是我们指定的类型中的其中一个,我们在程序中想对不同类型的异常进行不同的处理,并在处理异常的时候,要获取异常信息,我们可以通过如下方式。
1)语法
try:
可能发生异常的代码
except 异常类型1 as 变量名1:
异常处理的代码
except 异常类型2 as 变量名2:
异常处理的代码
except(异常类型3, 异常类型4, 异常类型5) as 变量名3:
异常处理的代码
except:
异常处理的代码
 如果没有发生异常,程序会忽略except中的代码,继续向下执行。
 如果发生了异常,会忽略try中剩余代码,根据异常类型匹配到相应的 except 并执行其中的代码。
 如果发生了异常,且异常类型无法和任何except匹配,异常将向外传递。
 一个except可以同时处理多个异常,将这些异常放在一个元组中。
 最后一个 except 可以忽略异常类型,它将被作为通配符使用。
2)案例
try:
result = 3 / 0
print(“发生异常了”)
except ZeroDivisionError as e:
print(e)
except (RuntimeError, TypeError, NameError) as e:
print(e)
except:
print(“Unexpected error”)
print(“End”)

11.2.3 else
可选地将else放在所有except之后。如果try中代码没有发生异常,将执行 else 中的代码。
1)语法
try:
可能发生异常的代码
except 异常类型1 as 变量名1:
异常处理的代码
except 异常类型2 as 变量名2:
异常处理的代码
else:
没有异常时执行的代码
2)说明
 从执行效果上说,将代码放到else块和直接放到try块中是一样的。
 将try正常执行完毕而没有引发任何异常后被执行的代码放到else中。提供了一种清晰的逻辑区分,将正常情况的代码与异常处理代码分开,使代码更易于理解和维护,有助于代码的可读性和可维护性。
 例如,你希望在try块中有些操作执行成功后,再执行其它代码,那就可以把代码放到else语句块中。
3)案例
try:
result = x / y
except ZeroDivisionError:
print(“除数不能为零!”)
else:
print(f"结果是: {result}")
11.2.4 finally
可选地,放在最后。无论是否发生异常都会执行的代码,通常用于执行一些必须要进行的清理操作,例如关闭文件、释放资源(如网络连接、数据库连接、锁等),即使在执行 try 块中的代码时出现了异常,也能保证这些操作得以完成。
1)语法
try:
可能发生异常的代码
except 异常类型1 as 变量名1:
异常处理的代码
except 异常类型2 as 变量名2:
异常处理的代码
else:
没有异常时执行的代码
finally:
无论是否发生异常都会执行的代码
2)说明
 如果从执行效果上说,大部分场景,将代码放到finally语句和放到try-except块外效果是一样的。
 finally 语句块是 try-except 结构的一部分,它确保了无论 try 块中是否发生异常,也无论 except 块是否被执行,其中的代码都会被执行
 直接放在try-except结构外面的代码只会在try-except结构正常执行完毕后才会执行,如果在try块中出现异常且没有被except块捕获,或者在except块中出现了新的异常导致程序终止,那么这部分代码将不会被执行。
3)案例

try:

result = 3 / 0

except ZeroDivisionError as e:

print(e)

else:

print(result)

finally:

print(“finally”)

print(“End”)

#输出结果:

division by zero

finally

End

try:
result = 3 / 0
except NameError as e:
print(e)
else:
print(result)
finally:
print(“finally”)
print(“End”)
#输出结果:

finally

Traceback (most recent call last):

File “e:\Hello\hello.py”, line 15, in

result = 3 / 0

^

ZeroDivisionError: division by zero

11.3 抛出异常
11.3.1 raise
当你想要在代码中明确表示发生了错误或异常情况时,可以使用 raise 来抛出异常。这可以帮助你在满足某些条件时停止程序的正常执行,并将控制权转移到异常处理部分。
1)语法
raise 异常类型(“异常描述”)
2)案例
def int_add(x, y):
if isinstance(x, int) and isinstance(y, int):
return x + y
else:
raise TypeError(“参数类型错误”)

print(int_add(1, 2)) # 3
print(int_add(“1”, “2”)) # TypeError: 参数类型错误
11.3.2 assert断言
assert用于判断一个表达式,在表达式条件为False的时候触发异常,常用于调试程序。
1)语法
assert 表达式 [,异常描述]
等价于:
if not 表达式:
raise AssertionError([异常描述])
2)案例
def int_add(x, y):
assert isinstance(x, int) and isinstance(y, int), “参数类型错误”
return x + y

print(int_add(1, 2)) # 3
print(int_add(“1”, “2”)) # AssertionError: 参数类型错误
11.4 自定义异常
通过直接或者间接继承Exception类来创建自己的异常。例如:
class MyError(Exception):
def init(self, value):
self.value = value

def __str__(self):return repr(self.value)

try:
raise MyError(1)
except MyError as e:
print(“触发自定义异常:”, e.value)
11.5 异常的传递
当存在 try 嵌套或函数嵌套时,若内层出现了异常且在内层无法处理,会将异常一层一层向外传递,直到异常被处理或程序报错。
try:
try:
try:
print(1 / 0)
except NameError as e:
print(“第三层”, e)
except TypeError as e:
print(“第二层”, e)
except Exception as e:
print(“第一层”, type(e), e)

第一层 <class ‘ZeroDivisionError’> division by zero

11.6 with关键字
Python中的with语句用于异常处理,封装了try except finally编码范式,提供了一种简洁的方式来确保资源的正确获取和释放,同时处理可能发生的异常,提高了易用性。使代码更清晰、更具可读性,简化了文件流等公共资源的管理。
11.6.1 语法
with expression as variable:
# 代码块
 expression:通常是一个对象或函数调用,该对象需要是一个上下文管理器,即实现了 enter__和__exit__方法。
 variable:是可选的,用于存储expression的__enter__方法的返回值。
11.6.2 工作原理
 使用 with 关键字系统会自动调用 f.close() 方法, with 的作用等效于 try finally 语句。
 当执行with语句时,会调用expression对象的__enter__方法。
enter 方法的返回值可以被存储在 variable 中(如果有),以供 with 代码块中使用。
 然后执行 with 语句内部的代码块。
 无论在代码块中是否发生异常,都会调用 expression 对象的__exit
方法,以确保资源的释放或清理工作,这类似于 try-except-finally 中的 finally 子句。
11.6.3 案例:打开一个文件并向其中写入内容,验证出现异常后文件是否正常关闭。
1)常规方式
try:
file = open(“test.txt”, “w”)
file.write(a)
file.close()
finally:
print(“文件是否关闭:”, file.closed) # 文件是否关闭: False
2)使用 try finally
try:
file = open(“test.txt”, “w”)
try:
file.write(a)
finally:
file.close()
finally:
print(“文件是否关闭:”, file.closed) # 文件是否关闭: True
3)使用 with
try:
with open(“test.txt”, “w”) as f:
f.write(a)
finally:
print(“文件是否关闭:”, f.closed) # 文件是否关闭: True
11.7 Python常见异常
11.7.1 异常基类
异常 说明
BaseException 所有内置异常的基类。它不应该被用户自定义类直接继承(这种情况请使用Exception)。

Exception 所有内置的非系统退出类异常都派生自此类。所有用户自定义异常也应当派生自此类。
ArithmeticError 此基类用于派生针对各种算术类错误而引发的内置异常:OverflowError, ZeroDivisionError, FloatingPointError。

BufferError 当与缓冲区相关的操作无法执行时将被引发。

LookupError 此基类用于派生当映射或序列所使用的键或索引无效时引发的异常:IndexError, KeyError。这可以通过 codecs.lookup() 来直接引发。
11.7.2 具体异常
异常 说明
AssertionError 当 assert 语句失败时将被引发。

AttributeError 当属性引用或赋值失败时将被引发。
IndexError 当序列抽取超出范围时将被引发。
KeyError 当在现有键集合中找不到指定的映射(字典)键时将被引发。
KeyboardInterrupt 当用户按下中断键 (通常为 Control-C 或 Delete) 时将被引发。
MemoryError 当一个操作耗尽内存但情况仍可(通过删除一些对象)进行挽救时将被引发。
NameError 当某个局部或全局名称未找到时将被引发。
OSError 此异常在一个系统函数返回系统相关的错误时将被引发,此类错误包括 I/O 操作失败例如 文件未找到 或 磁盘已满 等。
SyntaxError 当解析器遇到语法错误时引发。
TypeError 当一个操作或函数被应用于类型不适当的对象时将被引发。

http://www.dtcms.com/wzjs/24347.html

相关文章:

  • 深圳龙华观澜网站建设公司口碑优化
  • 为什么用php做网站百度游戏app下载
  • 网站怎么做才不会被墙购物网站排名
  • 免费服务器空间冯耀宗seo视频教程
  • 浙江品牌网站设计专家合肥百度网站排名优化
  • 简答网站建设流程有哪些如何推销网站
  • 门户网站 页面集成独立站推广
  • 网站建设综合实践 教材奇葩网站100个
  • 记录网站建设的基本步骤抖音seo什么意思
  • 西宁做网站多少钱企业网站设计制作
  • 网站编辑的职业特点有哪些seo收费标准多少
  • 上高做网站公司网络营销课程
  • 网站建设公司 长春广告营销是做什么的
  • 自己做儿童衣服教程的网站产品推广方案范文500字
  • 做网站加模块郑州网络推广厂家
  • 淘宝客网站怎么做合肥网站建设
  • 创建网站的详细步骤热门seo推广排名稳定
  • 福田做棋牌网站建设哪家公司便宜网页设计与制作案例教程
  • 镇江建设银行网站电商平台引流推广
  • 一家专门做原型的网站网络媒体有哪些
  • 搭建cms网站苹果自研搜索引擎或为替代谷歌
  • 陕西电商网站建设威海百度seo
  • 网站建设关键词分类怎样建立自己网站
  • 在线作图网站广州竞价外包
  • 做b2b网站如何盈利模式南京seo新浪
  • 迁安网站开发长沙网站开发制作
  • 潍坊网站建设 潍坊做网站百度一下你就知道主页
  • 阿里云企业网站建设教程seo优化网站教程百度
  • 网站设计画布规范1680爆款采集推广引流软件
  • 做的网站上更改内容改怎么回事百度关键词关键词大全