当python遇到错误时,它会引发一个异常(exception),并以此说明发生了某种异常状况。如果不对异常进行处理的话,python就会停止正在做的事情并显示一条详细说明异常情况的错误信息。
使用try-except语句
最简单的处理异常手段就是使用带有except的try语句。try语句用于将可能引发异常的代码隔离开,except子句用于标记当异常出现时需要执行的代码块。
<span style="font-size:10px;">#try-except try: num=float(input("Enter a number: ")) except: print("something weng wrong!") </span>输出:
不同的错误会引发不同类型的异常。except子句可以准确指定需要处理的异常类型。要指定单个异常类型,只需在except后面直接写上异常类型即可。
<span style="font-size:10px;">#指定异常类型 try: num=float(input("Enter a number: ")) except ValueError: print("That was not a number!") </span>输出:
指定具体的异常类型是一种良好的编程习惯,因为这样可以对不同情况进行不同的处理。
处理多种异常
一条代码可能会引发出不同类型的异常。使用多个except子句可以在同一个try块中对不同的异常作出不同的响应。
<span style="font-size:10px;">#处理多种异常 for value in (None,"hi"): try: print("Attempting to convert",value,"-->",end=" ") print(float(value)) except TypeError: print("I can only convert a string or a number!") except ValueError: print("I can only convert a string of digits!")</span>输出:
获取异常的参数
当异常发生时,它可能还会有一个与之关联的值,即该异常的参数(argument)。这个参数通常是python用于描述该异常的正式消息。获取该参数的办法是:在异常类型后面指定一个变量,并在这两者之间加上关键字as.
<span style="font-size:10px;">#处理异常的参数 try: num=float(input("Enter a number: ")) except ValueError as e: print("That was not a number! Or as python would say ...") print(e)</span>输出:
可以在try语句的最后面加上一个else子句(即所有except子句之后)。只有当try块中的代码没有引发任何异常时,else中的代码块才会被执行。
<span style="font-size:10px;">#try-except-else try: num=float(input("Enter a number: ")) except ValueError as e: print("That was not a number! Or as python would say ...") print(e) else: print("You entered the number",num)</span>输出: