响应式网站多少价格,个人制作网站的流程,做网站需要学那几个软件,网站管理密码介绍
简要介绍Python的异常处理#xff08;try-except#xff09;。
基本语法
Try-except是Python中异常处理的基础。
作为例子#xff0c;我们将解释执行除零时发生 ZeroDivisionError 的情况。 当除以零时#xff0c;会出现以下错误。
print(1 / 0)
# ZeroDivisionE…介绍
简要介绍Python的异常处理try-except。
基本语法
Try-except是Python中异常处理的基础。
作为例子我们将解释执行除零时发生 ZeroDivisionError 的情况。 当除以零时会出现以下错误。
print(1 / 0)
# ZeroDivisionError: division by zero要捕获此异常请编写如下。
try:print(1 / 0)
except ZeroDivisionError:print(Error)
# Error如果 try 子句中出现异常名称的错误except异常名称会中断 try 子句中的代码并执行 except 子句中的代码。 此外通过使用 except 异常名称作为变量名可以在变量中存储和使用异常对象。 异常对象存储错误消息可以查看错误的详细信息。
try:print(1 / 0)
except ZeroDivisionError as e:print(e)print(type(e))
# division by zero
# class ZeroDivisionError还可以通过指定基类来捕获。 例如ZeroDivisionError 的基类是 ArithmeticError。 该变量存储实际发生的派生类异常对象。
try:print(1 / 0)
except ArithmeticError as e:print(e)print(type(e))
# division by zero
# class ZeroDivisionError对多个异常进行不同的处理
如果要捕获多个异常并以不同的方式处理它们请为每个异常设置 except 。
def divide(a, b):try:print(a / b)except ZeroDivisionError as e:print(catch ZeroDivisionError:, e)except TypeError as e:print(catch TypeError:, e)divide(1, 0)
# catch ZeroDivisionError: division by zerodivide(a, b)
# catch TypeError: unsupported operand type(s) for /: str and str对多个异常执行相同的操作
通过在元组中指定异常名称可以使用一个 except 子句捕获多个异常。
def divide(a, b):try:print(a / b)except (ZeroDivisionError, TypeError) as e:print(e)divide(1, 0)
# division by zerodivide(a, b)
# unsupported operand type(s) for /: str and str捕获所有异常并执行相同的处理
如果要捕获所有异常则无需指定异常名称即可编写。
try:print(1 / 0)
except:print(Error)
# Error如果有多个 except 子句则只能在最后一个 except 子句中省略异常名称。 就像 if 语句中的 elif 和 else 一样
正常结束处理else
可以指定在 try 子句结束且 else 子句中不发生异常的情况下要执行的处理。
def divide(a, b):try:print(a / b)except ZeroDivisionError as e:print(catch ZeroDivisionError:, e)else:print(finish (no error))divide(1, 2)
# 0.5
# finish (no error)divide(1, 0)
# catch ZeroDivisionError: division by zero处理总是在终止时执行finally
可以在finally子句中指定始终在最后执行的过程无论是否发生异常。
def divide(a, b):try:print(a / b)except ZeroDivisionError as e:print(catch ZeroDivisionError:, e)finally:print(all finish)divide(1, 2)
# 0.5
# all finishdivide(1, 0)
# catch ZeroDivisionError: division by zero
# all finish概括
except 异常名称捕获特定异常except 异常名称作为变量名称将异常对象存储在变量中except可以设置多个例外。如果 except 中没有指定异常名称则捕获所有异常。
try:print(1 / 0)
except: # 如果try中出现异常print(Error)
else: # 如果try中没有出现异常print(finish (no error))
finally: # 无论异常如何发生始终执行print(all finish)