关于异常和断言的笔记
admin
2023-07-30 21:50:09
0

1. 异常

1.1异常的概念

  • 异常指的当是我们的程序决定执行一个语义学上有问题而语法无错误的命令时的情况,通常我们遇见异常时,程序通常会抛出一个异常并自动停止,然而,由于有些异常是我们在设计程序时可以预料到的(比如一个交互式程序要求使用者输入一个数字,然而使用者却输入了一个字符串),这时,我们可以自己写处理器来处理这些异常,让这些异常能被我们控制。

1.2 处理异常的方法
我们通常用try/except语句,如下列代码:

val = int(raw_input(\'Enter an integer: \'))
print \'The square of the number you entered is\', val**2

在大多数情况下,这段代码没问题,但是当用户输入的不是一个整数时,python解释器会抛出一个异常(ValueError)并终止程序,然而这种异常时可预期的,这时,我们可以利用try/block语句来解决这个问题。

while True:
    val = raw_input(\'Enter an integer: \')
    try:
        val = int(val)
        print \'The square of the number you entered is\', val**2
        break #to exit the while loop
    except ValueError:
        print val, \'is not an integer\'

在这段修改好的代码中,当用户的输入与预期不符时,我们跳到except语句,提示用户输入的不是整数,然后回到while语句,直到输入符合预期,程序执行结束。

hint:

  • 在代码中只有except:后面不加任何异常类型时,代码中出现任何一类错误都会进入except语句
  • except后可加多种类型的异常,如except(ValueError, TypeError):
  • 当代码中出现raise exceptionName(argument)时,程序会抛出与exceptionName对应的异常,并终止程序,终端上显示为exceptionName:argument

1.3 异常的作用

  • 2. 断言

  • Assertions are a useful defensive programming tool. They can be used toconfirm that the arguments to a function are of appropriate types. They are alsoa useful debugging tool. The can be used, for example, to confirm thatintermediate values have the expected values or that a function returns anacceptable value.
  • 基本形式
      assert Boolean expression, argument

    做完 MIT pset4 的收获

    当我们在一个函数中,要把另一个函数的返回值赋给一个变量时,要在函数开头把这个变量初始化

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...