在Python中,异常处理是一种非常重要的机制,它允许程序在遇到错误时能够优雅地处理,而不是直接崩溃。
异常处理主要通过 try
、 except
、 else
和 finally
这四个关键字来实现。
下面将详细介绍如何在Python中抛出异常以及如何捕获异常。
# raise Exception('This is the error message.')
def boxPrint(symbol, width, height):
if len(symbol) != 1:
raise Exception('符号必须是单个字符.')
if width <= 2:
raise Exception('宽度必须大于2.')
if height <= 2:
raise Exception('高必须大于2.')
print(symbol * width)
for i in range(height - 2):
print(symbol + (' ' * (width - 2)) + symbol)
print(symbol * width)
然后开始运行,查看抛出异常的情景:
for sym, w, h in (('*', 4, 4), ('8', 20, 5), ('x', 1, 3), ('ZZ', 3, 3)):
print()
try:
boxPrint(sym, w, h)
except Exception as err:
print('异常出现: ' + str(err))
**** * * * * **** 88888888888888888888 8 8 8 8 8 8 88888888888888888888 异常出现: 宽度必须大于2. 异常出现: 符号必须是单个字符.
这里定义了一个 boxPrint()
函数,它接受一个字符、
一个宽度和一个高度。它按照指定的宽度和高度,
用该字符创建了一个小盒子的图像。这个盒子被打印到屏幕上。
假定希望该字符是一个字符,宽度和高度要大于2。添加了if
语句,
如果这些条件没有满足,就抛出异常。稍后,
当用不同的参数调用 boxPrint()
时,
try/except
语句就会处理无效的参数。
这个程序使用了 except
语句的 except Exception as err
形式。
如果 boxPrint()
返回一个 Exception
对象,
这条语句就会将它保存在名为 err
的变量中。
Exception
对象可以传递给 str()
,
将它转换为一个字符串,得到用户友好的出错信息。