精华内容
下载资源
问答
  • python 抛出异常的完整写法
    2022-04-18 19:30:30

    抛出异常的完整个写法:

    try:
        # 尝试执行的代码
        pass
    except Exception [错误类型]:
        # 针对错误类型的处理 1 如果你知道会发生什么异常的话
        pass
    except Exception [错误类型]:
        # 针对错误类型的处理 2 如果你知道会发生什么异常的话
        pass
    except Exception as result:
        # 打印错误信息 未知的异常处理
        print(result)
    else:
        # 没有发生异常执行的代码
        pass
    finally:
        # 无论是否有异常都会执行的代码
        print("无论是否有异常都会执行的代码")

    更多相关内容
  • 主要介绍了Python 异常的捕获、异常的传递与主动抛出异常操作,结合实例形式详细分析了Python针对异常捕获、传递、处理等常见操作技巧,需要的朋友可以参考下
  • 本文给大家简单汇总了下Python抛出异常、自定义异常,传递异常的简单应用,有需要的小伙伴可以参考下
  • Python 抛出异常

    万次阅读 2017-12-13 23:20:41
    Python 抛出异常 抛出异常相当于是停止运行这个函数中的代码,将程序执行转到 except 语句。 如果没有 try 和 except 语句覆盖抛出异常的 raise 语句,该程序就会崩溃,并显示异常的出错信息。通常是调用该函数的...

    Python 抛出异常

    抛出异常相当于是停止运行这个函数中的代码,将程序执行转到 except 语句。

    如果没有 try 和 except 语句覆盖抛出异常的 raise 语句,该程序就会崩溃,并显示异常的出错信息。通常是调用该函数的代码知道如何处理异常,而不是该函数本身。所以你常常会看到 raise 语句在一个函数中, try 和 except 语句在调用该函数的代码中。

    使用 try 和 except 语句,你可以更优雅地处理错误,而不是让整个程序崩溃。

    #!/usr/bin/env python3
    # -*- coding:utf-8 -*-
    
    def boxPrint(symbol, width, height):
        if len(symbol) != 1:
            raise Exception("Symbol must be a single character string.")
        if width <= 2:
            raise Exception("Width must be greater than 2.")
        if height <= 2:
            raise Exception("Height must be greater than 2.")
    
        print(symbol * width)
        for i in range(height - 2):
            print(symbol + (' ' * (width - 2)) + symbol)
        print(symbol * width)
    
    
    for sym, w, h in (('*', 4, 4), ('O', 20, 5), ('x', 1, 3), ('ZZ', 3, 3)):
        try:
            boxPrint(sym, w, h)
        except Exception as err:
            print('An exception happened: ' + str(err))
    

    /usr/bin/python3.5 /home/strong/workspace/master.py
    ****
    *  *
    *  *
    ****
    OOOOOOOOOOOOOOOOOOOO
    O                  O
    O                  O
    O                  O
    OOOOOOOOOOOOOOOOOOOO
    An exception happened: Width must be greater than 2.
    An exception happened: Symbol must be a single character string.
    
    Process finished with exit code 0
    

    References

    展开全文
  • 抛出异常Python程序中的异常不仅可以自动触发,还可以由开发人员使用raise语句和assert语句主动抛出。 使用raise语句抛出异常: 1.使用异常类引发异常 格式如下: raise 异常类 #格式1:使用异常类名引发...

     抛出异常:

    Python程序中的异常不仅可以自动触发,还可以由开发人员使用raise语句和assert语句主动抛出。

    使用raise语句抛出异常:

    1.使用异常类引发异常

    格式如下:

    raise 异常类  #格式1:使用异常类名引发指定的异常

    示例如下所示:

     raise NameError

    运行界面如下:

    2.使用异常类对象引发异常

    格式如下:

    raise 异常类对象   #格式2:使用异常类的对象引发指定的异常

    示例代码如下:

    raise NameError()

    运行界面如下:

    以上代码中的raise之后的NameError()用于创建异常类对象。创建异常类对象时还通过字符串指定异常的具体信息。

    示例代码如下:

    raise NameError("索引下标超出异常")

    运行界面如下所示:

     3.重新引发异常:

    格式如下:

     raise  #格式3:使用刚出现过的异常重新引发异常

    代码如下:

    try:
        raise NameError
    except:
        raise

    运行界面: 

    以上示例中的try语句执行后会出现因raise语句引发的NameError异常,出现异常后except子句会被执行;except子句后的代码又使用raise语句抛出刚刚发生的NameError异常,最终程序因再次抛出异常而终止执行。

    raise语句的语法格式总结如下:

    1.raise 异常类  #格式1:使用异常类名引发指定的异常

    2.raise 异常类对象   #格式2:使用异常类的对象引发指定的异常

    3. raise  #格式3:使用刚出现过的异常重新引发异常

    以上3种格式都是通过raise语句抛出异常。第1种格式和第2种格式是对等的,都会引发指定类型的异常。其中,第一种格式会隐式创建一个该异常类型的对象,第2种格式是最常见的形式,它会直接提供一个该异常类型的对象,第3种格式用于重新引发刚刚发生的异常。

    使用assert语句抛出异常:

    assert语句又称为断言语句,其语法格式如下所示:

    assert 表达式[,异常信息]

    以上语法格式的assert后面紧跟一个表达式,表达式的值为False时触发AssertionError异常,值为True时不做任何操作;表达式之后可以使用字符串来描述异常信息。

    assert语句可以帮助程序开发者在开发阶段调试程序,以保证程序能够正确运行。

    下面使用断言语句判断用户输入的除数是否为0,示例代码如下:

    num_one = int(input("请输入被除数:"))
    num_two = int(input("请输入除数"))
    assert num_two !=0,'除数不能为0'
    result=num_one/num_two
    print(num_one,'/',num_two,'=',result)

    运行界面: 

    以上代码首先会接收用户输入的2个数num_one和num_two,并将num_one和num_two分别作为被除数和除数;然后使用assert语句判定num_two不等于0,若不等于0则进行除法运算,否则会引发AssertionError异常,并提示"除数不能为0";最后输出num_one除以num_two的结果。

    异常的传递:

    如果程序中的异常没有被处理,默认情况下会将该异常传递到上一级,如果上一级仍然没有处理异常,那么会继续向上传递,直至异常被处理或程序崩溃。

    示例如下:

    代码示例如下:

    def get_width():            #get_width()函数用于计算正方形边长
        print("get_width开始执行")
        num=int(input("请输入除数:"))
        width_len=10/num
        print("get_width执行结束")
        return width_len
    def calc_area():            #calc_area函数用于计算正方形面积
        print("calc_area开始执行")
        width_len =get_width()
        print("calc_area执行结束")
        return width_len*width_len
    def show_area():         #show_area()函数用于输出正方形的面积
        try:
            print("show_area开始执行")
            area_val=calc_area()
            print(f"正方形的面积是:{area_val}")
            print("show_area执行结束")
        except ZeroDivisionError as e:
            print(f"捕捉到异常:{e}")
    show_area()

    以上定义的函数show_area()为程序入口,该函数中调用了calc_area()函数,calc_area()函数中又调用了get_width函数。

    不出现异常时的运行机制:

    通过对该程序的分析,可知,程序的入口为show_area( ),首先执行函数show_area(),这个函数里面有try-except判断异常机制,识别try子句,无异常的时候,根据代码,首先输出show_area开始执行,之后将calc_area()的值赋给area_val,通过代码可知,calc_area的值可通过上一级的calc_area函数得到,看这段代码,输出calc_area开始执行,之后将get_width的值赋给width_len,与上面相似,可知get_width函数开始运行,输出get_width开始执行,然后输入除数,然后输出get_width执行结束,calc_area执行结束,输出正方形的面积是多少,输出show_area执行结束!

    运行界面如下:

    有异常的运行机制:

    因为只在show_area函数里面存在try-except异常识别机制,当get_width()函数使用变量num接收用户输入的除数,通过语句width_len=10/num计算正方形的边长,如果用户输入的除数值为0,那么程序会引发ZeroDivisionError异常。因为get_width()函数中并没有捕获异常的语句,所以get_width()函数中引发的异常向上传递到calc_area()函数,calc_area()函数中也没有捕获异常的语句,只能将异常继续向上传递到show_area()函数。

    show_area函数中设置了异常捕获语句try-except,它在接收到由calc_area()函数传递的异常后,会通过try-except捕获并处理异常。

     运行界面如图所示:

    展开全文
  • python抛出异常的方法

    2021-03-05 15:26:56
    python抛出异常的方法发布时间:2020-08-14 11:10:34来源:亿速云阅读:89作者:小新这篇文章主要介绍python抛出异常的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!异常是Python...

    python抛出异常的方法

    发布时间:2020-08-14 11:10:34

    来源:亿速云

    阅读:89

    作者:小新

    这篇文章主要介绍python抛出异常的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    异常是Python对象,表示一个错误。

    当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

    python学习网,大量的免费python视频教程,欢迎在线学习!

    常见异常# AttributeError 调用不存在的方法引发的异常

    # EOFError 遇到文件末尾引发的异常

    # ImportError 导入模块出错引发的异常

    # IndexError 列表月越界引发的异常

    # IOError I/O操作引发的异常,如打开文件出错等

    # KeyError 使用字典中不存在的关键字引发的异常

    # NameError 使用不存在的变量名引发的异常

    # TabError 语句块缩进不正确引发的异常

    # ValueError 搜索列表中不存在值引发的异常

    # ZeroDivisionError 除数为零引发的异常

    基础异常处理

    try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。

    如果你不想在异常发生时结束你的程序,只需在try里捕获它。

    try的工作原理是,当开始一个try语句后,python就在当前程序的上下文中作标记,这样当异常出现时就可以回到这里,try子句(与try同级的except等)先执行,接下来会发生什么依赖于执行时是否出现异常。

    如果当try后的语句执行时发生异常,python就跳回到try并执行第一个匹配该异常的except子句,异常处理完毕,控制流就通过整个try语句(除非在处理异常时又引发新的异常)。

    如果在try后的语句里发生了异常,却没有匹配的except子句,异常将被递交到上层的try,或者到程序的最上层(这样将结束程序,并打印缺省的出错信息)。

    如果在try子句执行时没有发生异常,python将执行else语句后的语句(如果有else的话),然后控制流通过整个try语句。

    不管在try有无异常抛出时都会执行本级try对应的finally。

    基础语法try:

    检测异常代码段except:

    发生异常后执行代码段else:

    未发生异常执行代码段finally:

    最终执行代码段

    例如print("test1")

    try:

    s = input()

    if s is None:

    print ("s 是空对象")

    print(len(s))  #这句抛出异常

    except TypeError:

    print("类型错误空对象没有长度")

    else:

    print("no problem")

    finally:

    print('end test1')

    以上是python抛出异常的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

    展开全文
  • python抛出异常

    千次阅读 2018-08-23 09:31:03
    Python 试图执行无效代码时,就会抛出异常。在第 3 章中,你已看到如何使用 try 和 except 语句来处理 Python 的异常,这样程序就可以从你预期的异常中恢复。但你也可以在代码中抛出自己的异常。抛出异常相当于是...
  • Python抛出异常详解

    千次阅读 2020-05-08 13:22:52
    Python抛出异常【1】 程序运行过程中 Python解释器遇到一个错误 会停止程序的运行 并且提示一些错误信息 这个 就是异常 程序停止并且提示错误信息的动作叫做抛出异常 抛出异常原因 主动捕获异常 可以增加健壮性 ...
  • python 抛出异常和捕获异常

    千次阅读 2019-03-07 10:53:25
    抛出异常: class Widget: def __init__(self,size=(40,40)): self._size=size def getSize(self): return self._size def resize(self,width,height): if width&lt;0 or height&lt...
  • 需求:提示用户输入性别,如果非男非女,抛出异常并处理 # 自定义异常 class GenderException(Exception): pass 注释:自定义异常需要继承父类Exception # 定义sex函数 def sex(): a = input("请输入性别:") if...
  • python 抛出异常记录

    千次阅读 2020-08-27 10:43:40
    python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类)去标识,不同的类对象标识不同的异常,一个异常标识一种错误 AttributeError #试图访问一个对象没有的树形,比如foo.x,但是foo没有...
  • raise #该方法可直接结束两层循环,抛出异常;如果用break,则只会结束内层循环,然后继续下一次外层循环;如果用return,也是直接结束两层循环,该方法必须在函数中用;continue是不执行后面的程序,进入下一次循环...
  • python 抛出异常 try except 应用总结

    千次阅读 2018-05-10 08:20:18
    第一种:try except 抛出异常结束程序运行def collatz(number): try: number = int(number) if number % 2 == 0: return number // 2 elif number % 2 == 1: return 3 * num...
  • python手动抛出异常

    万次阅读 2019-03-15 21:40:52
    # 根据业务逻辑判断,需要手动抛出异常 raise Exception(print(a)) #raise Exception('print(a)')#注意这两个的区别,这个带字符串,直接打印字符串里的内容,python把字符串的内容一字不差解析成了异常并打印...
  • 使用raise抛出异常 当程序出现错误,python会自动引发异常,也可以通过raise显示地引发异常。一旦执行了raise语句,raise后面的语句将不能执行。 try: s = None if s is None: print "s 是空对象" raise Name...
  • 首先,这是文件dum_function.py中相应的(仍然是dum:p)函数:def square_value(a):"""Returns the square value of a."""try:out = a*aexcept TypeError:raise TypeError("Input should be a string:")return out这...
  • raise #该方法可直接结束两层循环,抛出异常;如果用break,则只会结束内层循环,然后继续下一次外层循环;如果用return,也是直接结束两层循环,该方法必须在函数中用;continue是不执行后面的程序,进入下一次...
  • python 抛出异常

    千次阅读 2019-05-09 08:37:11
  • python----主动抛出异常并且捕获异常

    千次阅读 2022-04-03 16:50:54
    python中,除了代码执行出错python解释器会抛出异常以外 咱们还可以根据应用程序特有的业务需求主动抛出异常 python中提供了一个Exception异常类 在开发时,如果满足特定业务需求时,希望抛出异常,可以 1、创建...
  • Python_抛出异常

    千次阅读 2018-09-28 10:33:03
    def input_password(): # 提示用户输入密码 pwd = input("...) ... if len(pwd) &gt;= 8: return pwd # 如果小于8,则抛出异常 print("主动抛出异常") # 创建异常对象 ex = Excep...
  • 假设我们写一个程序,可以将输入的身高厘米数转化为英寸,如果遇到了负数,字母,中文等则抛出异常,并输出“Only positive numeric inputs are accepted. Please try again.”,最后再返回到输入input函数当中,...
  • python中的raise
  • Python 中是使用 raise 关键字来抛出异常的,比如在下面这个函数中,如果不存在目标文件,则会抛出一个 Exception 通用异常。2. 如何捕获异常?出现错误或者异常没有关系,关键在于你要学会预判程序可能会出现...
  • 今天小编就为大家分享一篇python打印异常信息的两种实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 前言有时候python自带异常不够用,如同java,python也可以...格式:主动抛出异常终止程序raise 异常名称(‘异常描述")raise RuntimeError("testError")主动抛出这个异常,并加以解释。自定义异常python的异常分为两...
  • python抛出异常(raise语句)

    万次阅读 2019-06-18 18:37:19
    用 raise 能够主动抛出异常, 使用【 raise 异常名 】抛出该类异常 raise IndexError 也可以单独使用 raise 再次引发刚发生的异常 try: 1/0 except: print("错误") raise 同时能够指定抛出异常的描述信息 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,846
精华内容 49,138
关键字:

python抛出异常