10.1 除零异常
i = input("请输入数字:") n = 8888 result = n / int(i) print(result) print("{0}除以{1}等于{2}".format(n,i,result))
10.2 捕获异常
i = input("请输入数字:") n = 8888 try: result = n / int(i) print(result) print("{0}除以{1}等于{2}".format(n,i,result)) except ZeroDivisionError as e: print("不能除以0,异常:{}".format(e))
10.2.2 多个except代码块
i = input("请输入数字:") n = 8888 try: result = n / int(i) #表达式可能发生除0异常。另外,int(i)表达式也可能发生整数转换异常 print(result) print("{0}除以{1}等于{2}".format(n,i,result)) except ZeroDivisionError as e: #捕获零异常 print("不能除以0,异常:{}".format(e)) except ValueError as e: #捕获整数异常 print("输入的是无效数字,异常:{}".format(e))
10.2.3 多重异常捕获
i = input("请输入数字:") n = 8888 try: result = n / int(i) print(result) print("{0}除以{1}等于{2}".format(n,i,result)) except (ZeroDivisionError,ValueError) as e: print("不能除以0,异常:{}".format(e))
10.2.4 try-except语句嵌套
i = input("请输入数字:") n = 8888 try: i2 = int(i) #整数转换可能发生异常,需要捕获异常 try: result = n / i2 print(result) print("{0}除以{1}等于{2}".format(n,i2,result)) except ZeroDivisionError as e1: print("不能除以0,异常:{}".format(e1)) except ValueError as e2: print("输入的是无效数字,异常:{}".format(e2))
10.3 使用finally代码块释放资源
i = input("请输入数字:") n = 8888 try: result = n / int(i) #表达式可能发生除0异常。另外,int(i)表达式也可能发生整数转换异常 print(result) print("{0}除以{1}等于{2}".format(n,i,result)) except ZeroDivisionError as e: #捕获零异常 print("不能除以0,异常:{}".format(e)) except ValueError as e: #捕获整数异常 print("输入的是无效数字,异常:{}".format(e)) finally: #释放资源代码 print("资源释放")
10.4 自定义异常类
class zhijieketangException(Exception): def __init__(self,message): #构造方法,其中的参数message是异常描述信息 super().__init__(message) #调用父类构造方法,并把参数message传给父类构造方法
10.5 手动引发异常
class ZhijieketangException(Exception): def __init__(self,message): #构造方法,其中的参数message是异常描述信息 super().__init__(message) #调用父类构造方法,并把参数message传给父类构造方法 i = input("请输入数字:") n = 8888 try: result = n / int(i) #表达式可能发生除0异常。另外,int(i)表达式也可能发生整数转换异常 print(result) print("{0}除以{1}等于{2}".format(n,i,result)) except ZeroDivisionError as e: #捕获零异常 #print("不能除以0,异常:{}".format(e)) raise ZhijieketangException("不能除以0") except ValueError as e: #捕获整数异常 #print("输入的是无效数字,异常:{}".format(e)) raise ZhijieketangException("输入的是无效数字")