python:一分钟学会异常类及处理

目录

什么是异常

常见异常

异常的处理

注意事项


什么是异常

异常是一个python对象,它会影响正常程序的进行,如果不抛出,会终止程序。

常见异常

BaseException所有异常的基类
IOError输入输出错误
Exception常见错误的基类
ZeroDivisionError取0错误
RuntimeError运行错误

异常的处理

 1.try—except—else

  • try是是开始有异常的捕捉块
  • except捕捉不同的异常,执行捕捉该异常后的处理语句
  • else则是没有异常时执行的语句
try:
    f1 = open('filename','w','utf-8')
    f1.write('wwwwwwww')
except IOError:
    print('没有找到')
else:
    print('成功')
    f1.close()

2.try—except—else—finally

  • try是是开始有异常的捕捉块
  • except捕捉不同的异常,执行捕捉该异常后的处理语句
  • else则是没有异常时执行的语句
  • finally是不管有没有异常都要执行的语句
try:
    f1 = open('filename','w','utf-8')
    f1.write('wwwwwwww')
except IOError:
    print('没有找到')
else:
    print('成功')
    f1.close()
finally:
    print('我一定执行')

3.raise抛出异常

创建一个异常的对象,可以层层向上抛出异常

def nozero():
      m = input()
      if 0 not in m:
        return m
      e = Exception("请不要输入0")
      raise e

try:
   pp = nozero()   
   print(pp)
except Exception:
  print(Exception)

注意事项

发生异常时,执行第一个匹配该异常的except子句,所以第一个的异常类通常比第二个子类要小

如ValueError 是 Exception 的子类

a = (2,3,-4,5,6)
total = 0
try:
    
 for e in a:
    if e < 0:
        raise ValueError(str(e) + '数值不能为负')
    else:
        total += e

except ValueError:
    print('数值不能为负')
except Exception:
    print('发生异常')

else:
    print(total)

finally:
    print("这是一个异常的deom")

则结果是:

 如Exception 是 ValueError 的子类

a = (2,3,-4,5,6)
total = 0
try:
    
 for e in a:
    if e < 0:
        raise ValueError(str(e) + '数值不能为负')
    else:
        total += e
except Exception:
    print('发生异常')

except ValueError:
    print('数值不能为负')


else:
    print(total)

finally:
    print("这是一个异常的deom")

则结果是:

 JAVA的异常与python相似:

JAVA超详细:异常类型及处理(含实例)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python 中的 try-except 语句用于捕获并处理异常。当代码执行过程中发生异常时,程序会停止执行并抛出异常信息。如果不处理这些异常,程序就会终止。因此,我们需要使用 try-except 语句来捕获并处理异常,以保证程序的正常运行。 语法如下: ```python try: # 可能会出现异常的代码块 except Exception1: # 异常类型1的处理方式 except Exception2: # 异常类型2的处理方式 else: # 如果 try 块没有抛出任何异常,则执行 else 块 finally: # 不管是否有异常发生,都会执行 finally 块 ``` try 语句块中包含可能会出现异常的代码,如果代码块中有异常抛出,则会自动跳转到相应的 except 块中进行异常处理。 except 块用于捕获特定类型的异常,并提供相应的处理方式。如果不指定异常类型,则会捕获所有类型的异常。可以在一个 try 语句中包含多个 except 块,以处理不同类型的异常。 else 块在 try 块没有抛出任何异常时执行,用于定义在没有异常发生时要执行的代码。 finally 块在无论是否有异常发生时都会执行,用于定义一些必须执行的代码,例如释放资源等。 Python 中常见的异常类型包括: - AttributeError:当访问对象的属性或方法不存在时抛出。 - NameError:当访问未定义的变量时抛出。 - TypeError:当操作或函数应用于不支持它的对象类型时抛出。 - ValueError:当传递给函数的参数不正确时抛出。 - ZeroDivisionError:当除数为零时抛出。 例如: ```python try: num1 = int(input("请输入一个整数:")) num2 = int(input("请输入另一个整数:")) result = num1 / num2 print("结果为:", result) except ValueError: print("请输入整数") except ZeroDivisionError: print("除数不能为零") except: print("发生了其他异常") else: print("计算完成") finally: print("程序结束") ``` 在这个例子中,我们尝试将用户输入的两个字符串转换为整数,并计算它们的商。如果输入的不是整数,会抛出 ValueError 异常;如果除数为零,会抛出 ZeroDivisionError 异常。如果发生其他异常,则会捕获所有异常。如果没有异常发生,则打印计算结果。不管有没有异常发生,都会打印“程序结束”。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值