python——异常处理机制

14.异常捕获机制

python——异常处理机制_第1张图片

  • Python 有两种错误很容易辨认:语法错误和异常。

Python assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常。

异常

即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。

异常处理

try/except

异常捕捉可以使用 try/except 语句。

python——异常处理机制_第2张图片

while True:
    try:
        x = int(input("请输入一个数字: "))
        break
    except ValueError:
        print("您输入的不是数字,请再次尝试输入!")
  • 实例一:
a = 10
b = 0
# print(10 / 0)  #ZeroDivisionError


try:
    print(a/b)
except ZeroDivisionError:
    print("分母不能为零")

try/except…else

python——异常处理机制_第3张图片

  • 实例二:

    a, b = input("请输入两个数字用空格隔开:").split(" ")
    
    
    try:
        a = float(a)
        b = float(b)
        c = a / b
    except:
        print("分母不能为零")
    else:
        print("相除的结果为:", c)
    

    try-finally 语句

    python——异常处理机制_第4张图片

    • 案例
    a, b = input("请输入两个数字用空格隔开:").split(" ")
    
    try:
        a = float(a)
        b = float(b)
        c = a / b
    except:
        print("分母不能为零")
    else:
        print("相除的结果为:", c)
    finally:
        print("本次运算服务结束")
    

抛出异常

除了捕获和处理异常的语句之外,python还有一个主动抛出异常的的机制

Python 使用 raise 语句抛出一个指定的异常。

python——异常处理机制_第5张图片

  • 案例
a, b = input("请输入两个整数用空格隔开:").split(" ")

a = eval(a)
b = eval(b)


def isIntNumber(a, b):
    if (not isinstance(a, int) or not isinstance(b, int)):
        raise TypeError("input is not Int")

try:
    isIntNumber(a, b)
    c = a / b
except Exception as e:
    print(e)
else:
    print("相除的结果为:", c)
finally:
    print("本次运算服务结束")

你可能感兴趣的:(Python,python,exception)