首页 > 其他分享 >手动抛异常(raise)

手动抛异常(raise)

时间:2023-07-22 11:11:06浏览次数:62  
标签:Exception CustomException raise 异常 手动 类型 data

 1 '''
 2 在Python中,raise关键字用于抛出异常。它允许程序员手动引发异常,以便在特定的条件下进行错误处理或向调用者报告错误/异常。
 3 1. raise语句
 4     raise语句用于引发异常,并可选择提供一个异常类型和一个可选的异常消息。
 5     当raise语句被执行时,程序将立即停止当前的执行流程,并且控制权将转移到最近的异常处理器。
 6     语法: raise ExceptionType("Exception message")
 7         其中,ExceptionType是指要引发的异常类型,可以是Python内置的异常类型(如ValueError、TypeError等),也可以是自定义的异常类型。
 8         Exception message是一个可选的字符串,用于描述异常的具体信息。
 9 
10 
11 2. 最佳实践
12     1. 使用合适的异常类型:根据情况选择合适的异常类型,这样可以提供更准确的错误信息。
13     2. 提供明确的异常消息:为了使调试和错误追踪更容易,提供清晰、明确的异常消息是很重要的。
14     3. 避免滥用raise:raise应该只在必要的情况下使用,不应该被滥用成为处理控制流程的手段。
15 
16 '''
17 
18 
19 # 抛出内置异常
20 def divide(a, b):
21     if b == 0:
22         raise ZeroDivisionError("除数不能为零")
23     return a / b
24 
25 
26 try:
27     result = divide(10, 0)
28 except ZeroDivisionError as e:
29     print(e)
30 
31 
32 # 抛出自定义异常
33 class CustomException(Exception):
34     pass
35 
36 
37 def process_data(data):
38     if not isinstance(data, str):
39         raise CustomException("数据类型错误")
40     # 其他处理逻辑
41 
42 
43 try:
44     process_data(100)
45 except CustomException as e:
46     print(e)

输出:

  除数不能为零
  数据类型错误

 

标签:Exception,CustomException,raise,异常,手动,类型,data
From: https://www.cnblogs.com/allenxx/p/17573019.html

相关文章

  • 多组异常处理
    语法1try:2#可能引发异常的代码3exceptExceptionType1:4#处理第一种异常的代码5exceptExceptionType2:6#处理第二种异常的代码7except:8#处理其他所有异常的代码9finally:10#无论是否发生异常,都会执行的代码在上述语......
  • 多组异常处理基础
    1.常见的内置异常类  1.1Exception1try:2#一些代码3exceptSpecificException:4#处理特定的异常类型5exceptAnotherException:6#处理另一种异常类型7exceptExceptionase:8#捕获其他未处理的异常,并进行适当处理9print(f"捕......
  • 异常基础
    1.什么是异常跟java异常(Exception)一样,都是指在程序执行过程中发生的错误或异常情况。当程序出现异常时,会中断正常的执行流程,并转而执行异常处理的逻辑。2.什么情况下触发异常异常可以由多种原因引起,例如:语法错误:代码不符合Python语法规则。运行时错误:在代码执行期间发生了......
  • Java异常
    Java异常什么是异常实际工作中,遇到的情况不可能是非常完美的。比如:你写的某个模块,用户输入不一定符合你的要求、你的程序要打开某个文件,这个文件可能不存在或者文件格式不对,你要读取数据库的数据,数据可能是空的等。我们的程序再跑着,内存或硬盘可能满了。等等。软件程序在运......
  • 由事务占用大量undo和temp表空间手动释放
    正常大事务造成undo和temp临时表空间被占用,如何释放其空间?一般情况下,需要人为的干预,Oracle不会在其扩展后自动收缩,这部分空间Oracle会保留重用。相应的方法也类似,可以先尝试resize,不行的话,可以新建后设为默认,待原有的不再使用后就可以删除。PS:如果您是DG环境,需要您......
  • 【Oracle】预定义说明的部分 ORACLE 异常错误
    预定义说明的部分ORACLE异常错误参考链接:https://www.cnblogs.com/thescentedpath/p/errordeal.html预定义说明的部分ORACLE异常错误错误号异常错误信息名称说明ORA-0001Dup_val_on_index违反了唯一性限制ORA-0051Timeout-on-resource在等待资源时发生超......
  • 手动实现java分页的代码
    手动实现Java分页的代码分页是在Web开发中常见的需求之一,它可以将大量数据分割成多个页面进行显示,提高用户体验和系统性能。在Java中,我们可以通过手动实现分页来实现这一功能。本文将介绍如何使用Java代码手动实现分页功能,并提供代码示例。第一步:获取数据总数在进行分页之前,我们......
  • 关于async / await的异常捕获
    关于async/await的异常捕获:https://blog.csdn.net/qq_42543244/article/details/123423894?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168982167716800180661339%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=16898......
  • Jedis 参数异常引发服务雪崩案例分析
    作者:vivo互联网服务器团队-WangZhiRedis作为互联网业务首选的远程缓存工具而被大面积使用,作为访问客户端的Jedis同样被大面积使用。本文主要分析Redis3.x版本集群模式发生主从切换场景下Jedis的参数设置不合理引发服务雪崩的过程。一、背景介绍Redis作为互联网业务首选......
  • Embedding into a shared library fails-- c++ import numpy异常
    rb reportatbugs.python.orgWedNov2610:13:39CET2008 Previousmessage: [New-bugs-announce][issue4433]_ctypes.COMErrorcrashNextmessage: [New-bugs-announce][issue4435]SphinxdoesnotshowfaileddoctestsinquietmodeMessagessortedby: [da......