python实战:异常

异常

程序的错误有两种
编码出错 , 不符合语言的语法
运行时报错 -------- 异常
程序运行期间是要避免异常
程序一旦出现异常就终止运行

捕获异常

语法

捕捉不同类型异常

语法
try :
可能出现异常的语句
except :
出现异常后会自动执行的代码
如果 try 下面的代码没出现异常 , 那么 except 下面的代码不会执行
只有 try 下面的代码出现异常 , except 下面的代码才会执行
一旦异常被 try 捕捉 , 那么程序就不会报错终止了
try:
    a = int(input("请输入一个整数"))
except:
    print("输入不正确")

捕捉不同类型异常

try:
   可能出异常的代码 
except 异常类型1: 
   出现异常类型执行的代码 
except 异常类型2: 
   出现异常类型执行的代码
except: 
   出现未知异常执行的代码
try:
   a = int(input("请输入一个整数")) 
   b = int(input("请输入一个整数")) 
   print(a / b) 
except ValueError: 
   print("请输入一个可以转化整数") 
except ZeroDivisionError: 
   print("除数不能为0") 
except: 
   print("未知错误") 
# ValueError: 输入的值不能转化为整数 
# ZeroDivisionError: 除数为0的时候报的错误
try:
   num1 = int(input("请输入num1的值")) 
   num2 = int(input("请输入num2的值")) 
   op1 = input("请输入op1的值")
   if op1 == "+": 
      print(num1 + num2) 
   elif op1 == "-": 
      print(num1 - num2) 
   elif op1 == "*": 
      print(num1 * num2) 
   elif op1 == "/": 
      print(num1 / num2) 
   else:
      print("op1值不对") 
except ValueError: 
    print("请输入一个可以转化整数") 
except ZeroDivisionError: 
    print("除数不能为0") 
except: 
    print("未知错误")

没有异常发生执行的代码

语法
捕捉未知异常显示系统异常提示信息
无论是否异常都要执行的代码

异常完整语法

try:
可能出现异常的代码
except:
发生异常要处理的代码
else:
没有异常发生要执行的代码

捕捉未知异常显示系统异常提示信息

try:
    a = int(input("请输入a的值")) 
    b = int(input("请输入b的值")) 
    print(a / b) 
except Exception as result: 
    # 捕捉未知异常,把未知异常系统的错误提示显示出来 
    print(result)

无论是否异常都要执行的代码

try :
可能出现异常的代码
except :
出现异常要处理的代码
finally :
无论是否异常都要执行的代码
try:
   a = int(input("请输入a的值")) 
   b = int(input("请输入b的值")) 
   print(a / b) 
except: 
   print("异常发生") 
finally: 
   print("不论是否有异常都要执行的代码")

异常完整语法

try:
   a = int(input("请输入a的值")) 
   b = int(input("请输入b的值")) 
   print(a / b) 
except ValueError: 
   print("请输入正确的整数") 
except ZeroDivisionError:
    print("除数不能为0") 
except Exception as result: 
    print("未知异常", result) 
else:
    print("代码没有异常发生") 
finally:
    print("代码执行完成")

主动抛出异常

  • 可以通过代码人为的抛出异常
  • 语法
raise Exception ( " 异常描述 " )
主动抛出的异常同样会导致程序报错终止
print("开始") 
raise Exception("主动抛出的异常") 
# 这个异常是自己人为抛出 
# 不论什么样的异常,只有不捕捉,代码就会报错终止 
print("结束") 
# 这里的print执行不了,因为上面一句代码已经抛出异常了,程序终止了

捕捉主动抛出的异常

不管是什么异常 , 都需要代码捕捉 , 不然程序会报错
# 计算器,当用户输入的不是+-*/会抛出异常,并捕捉这个异常 
try:
   num1 = int(input("请输入整数"))
   num2 = int(input("请输入整数")) 
   op1 = input("请输入+-*/") 
   if op1 != "+" and op1 != "-" and op1 != "*" and op1 != "/": 
      raise Exception("请输入正确的+-*/") 
   if op1 == "+":
      print(num1 + num2) 
   elif op1 == "-": 
      print(num1 - num2) 
   elif op1 == "*": 
      print(num1 * num2) 
   else:
      print(num1 / num2) 
except Exception as result: 
   print(result)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值