第十章 异常
Python使用被称为异常 的特殊对象来管理程序执行期间发生的错误。 每当发生让Python不知所措的错误时, 它都会创建一个异常对象。 如果你编写了处理该异常的代码, 程序将继续运行;
如果你未对异常进行处理, 程序将停止, 并显示一个traceback, 其中包含有关异常的报告。
异常是使用try-except 代码块处理的。
try:
print(5/0)
except ZeroDivisionError:
print("You can't divide by zero!")
如果try 代码块中的代码运行起来没有问题, Python将跳过except 代码块; 如果try 代码块中的代码导致了错误,
Python将查找这样的except 代码块, 并运行其中的代码, 即其中指定的错误与引发的错误相同。
在这个示例中, try 代码块中的代码引发了ZeroDivisionError 异常, 因此Python指出了该如何解决问题的except 代码块, 并运行其中的代码。 这样, 用户看到的是一条友
好的错误消息, 而不是traceback。
使用异常,避免崩溃
分析文本
方法split() 以空格为分隔符将字符串分拆成多个部分, 并将这些部分都存储到一个列表中
title = "Alice in Wonderland"
title.split()
['Alice', 'in', 'Wonderland'] #结果
使用多个文件
失败时一声不吭
并非每次捕获到异常时都需要告诉用户, 有时候你希望程序在发生异常时一声不吭, 就像什么都没有发生一样继续运行。
要让程序在失败时一声不吭, 可像通常那样编写try 代码块, 但在except 代码块中明确地告诉Python什么都不要做。
Python有一个pass 语句, 可在代码块中使用它来让Python什么都不要做:
决定报告哪些错误
存储数据
模块json 让你能够将简单的Python数据结构转储到文件中, 并在程序再次运行时加载该文件中的数据。 你还可以使用json 在Python程序之间分享数据。 更重要的是, JSON数据
格式并非Python专用的, 这让你能够将以JSON格式存储的数据与使用其他编程语言的人分享。 这是一种轻便格式, 很有用, 也易于学习
使用json.dump() 和json.load()
import json
numbers = [2, 3, 5, 7, 11, 13]
filename = 'numbers.json'
with open(filename, 'w') as f_obj:
son.dump(numbers, f_obj)
导入模块json,函数json.dump()将数字列表存储到文件numbers.json中
import json
filename = 'numbers.json'
with open(filename) as f_obj:
numbers = json.load(f_obj)
print(numbers)
导入模块json,函数json.load()加载存储在numbers.json中数据
重构