python异常处理案例

一、自定义异常类

# 继承 Exception
class MyError(Exception):
     def __init__(self, msg):
         self.msg = msg
    
     def __str__(self):
         return self.msg
 
# 求和的方法
def add(a,b):
    # 如果a和b中有负数,就向调用处抛出异常
    if a < 0 or b < 0:
        raise MyError('自定义的异常')
             
    r = a + b
    return r
 
# 调用 求和的方法
try:
    print(add(-123,456))
except MyError as e:
    print(e.n)

二、常见异常处理类(举例3个)

1. tryexcept 

try:
    # 可能会引发异常的代码
    result = 1 / 0
except ZeroDivisionError:
    # 处理特定类型的异常
    print("不能除以零")
    

2.try…except…else…

	try:
        #可能会引发异常的代码
    except Exception [ as reason]:
        #用来处理异常的代码
    else:
        #如果try子句中的代码没有引发异常,就继续执行这里的代码

3.try…except…finally…

三、默认异常处理 方案

​
try:
    print(1/0)
except ZeroDivisionError as e:
    print(e)
 
​

四、主动触发异常 方案

def add(a,b):
    # 如果a和b中有负数,就向调用处抛出异常
    if a < 0 or b < 0:
        raise Exception('两个参数中不能有负数!')
    r = a + b
    return r
 
print(add(-123,456))

五、无措处理方案

# 无措处理方案
try:
    age = int(input("请输入您的年龄:"))
except ValueError:
    pass  # 无操作处理

六、finally 扫尾工作处理方案

 
  #finally扫尾工作处理方案
  try:
 
      a = int(input("请输入 a 的值:"))
 
      print(20 / a)
 
  except:
 
      print("发生异常!")
 
  else:
 
      print("执行 else 块中的代码")
 
  finally:
 
      print("执行 finally 块中的代码")

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值