鱼C论坛

 找回密码
 立即注册

python核心编程笔记八——raise语句

已有 457 次阅读2018-4-20 10:21

使用raise抛出异常
当程序出现错误,python会自动引发异常;也可以通过raise自发地引发异常,一旦执行了raise语句自动的引发异常,raise后面的语句将不能执行。
例如1:
>>> raise NameError
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    raise NameError
NameError

例如2:演示raise用法
try:
     s = None
     if s is None:
         print ("s 是空对象")
         raise NameError                       #如果引发NameError异常,后面的代码将不能执行
     print(len(s))
except TypeError:                             #except指的是如果try中的条件不成立,将执行except语句
     print ("空对象没有长度")

#调用结果
s 是空对象
Traceback (most recent call last):
  File "C:\Users\songyuxue\Desktop\练习1.py", line 5, in <module>
    raise NameError
NameError
#这时条件成立引发NameError异常,后面的代码也即print将不能执行

例如3:
try:
     s = 1
     if s is None:
         print ("s 是空对象")
         raise NameError                       #如果引发NameError异常,后面的代码将不能执行
     print(len(s))
except TypeError:                              #except指的是如果try中的条件不成立,将执行except语句
     print ("空对象没有长度")

#调用结果为
空对象没有长度

例4:
try:
    s = None
    if s is None:
        print ("s 是空对象")
        raise NameError("条件成立异常")
    print(len(s))           
except TypeError:
     print ("空对象没有长度")

#调用结果为
s 是空对象
Traceback (most recent call last):
  File "C:\Users\songyuxue\Desktop\练习1.py", line 5, in <module>
    raise NameError("条件成立异常")
NameError: 条件成立异常

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-17 02:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部